public final class Duration extends BaseDuration implements ReadableDuration, Serializable
A duration is defined by a fixed number of milliseconds. There is no concept of fields, such as days or seconds, as these fields can vary in length.
A duration may be converted to a Period
to obtain field values.
This conversion will typically cause a loss of precision.
Duration is thread-safe and immutable.
Modifier and Type | Field and Description |
---|---|
static Duration |
ZERO
Constant representing zero millisecond duration
|
Constructor and Description |
---|
Duration(long duration)
Creates a duration from the given millisecond duration.
|
Duration(long startInstant,
long endInstant)
Creates a duration from the given interval endpoints.
|
Duration(Object duration)
Creates a duration from the specified object using the
ConverterManager . |
Duration(ReadableInstant start,
ReadableInstant end)
Creates a duration from the given interval endpoints.
|
Modifier and Type | Method and Description |
---|---|
Duration |
abs()
Returns a duration that has a positive or zero number of milliseconds.
|
Duration |
dividedBy(long divisor)
Returns a new duration with this length divided by the
specified divisor.
|
Duration |
dividedBy(long divisor,
RoundingMode roundingMode)
Returns a new duration with its length divided by the
specified divisor.
|
long |
getStandardDays()
Gets the length of this duration in days assuming that there are the
standard number of milliseconds in a day.
|
long |
getStandardHours()
Gets the length of this duration in hours assuming that there are the
standard number of milliseconds in an hour.
|
long |
getStandardMinutes()
Gets the length of this duration in minutes assuming that there are the
standard number of milliseconds in a minute.
|
long |
getStandardSeconds()
Gets the length of this duration in seconds assuming that there are the
standard number of milliseconds in a second.
|
static Duration |
millis(long millis)
Create a duration with the specified number of milliseconds.
|
Duration |
minus(long amount)
Returns a new duration with this length minus that specified.
|
Duration |
minus(ReadableDuration amount)
Returns a new duration with this length minus that specified.
|
Duration |
multipliedBy(long multiplicand)
Returns a new duration with this length multiplied by the
specified multiplicand.
|
Duration |
negated()
Returns a new duration with this length negated.
|
static Duration |
parse(String str)
Parses a
Duration from the specified string. |
Duration |
plus(long amount)
Returns a new duration with this length plus that specified.
|
Duration |
plus(ReadableDuration amount)
Returns a new duration with this length plus that specified.
|
static Duration |
standardDays(long days)
Create a duration with the specified number of days assuming that
there are the standard number of milliseconds in a day.
|
static Duration |
standardHours(long hours)
Create a duration with the specified number of hours assuming that
there are the standard number of milliseconds in an hour.
|
static Duration |
standardMinutes(long minutes)
Create a duration with the specified number of minutes assuming that
there are the standard number of milliseconds in a minute.
|
static Duration |
standardSeconds(long seconds)
Create a duration with the specified number of seconds assuming that
there are the standard number of milliseconds in a second.
|
Duration |
toDuration()
Get this duration as an immutable
Duration object
by returning this . |
Days |
toStandardDays()
Converts this duration to a period in days assuming that there are the
standard number of milliseconds in a day.
|
Hours |
toStandardHours()
Converts this duration to a period in hours assuming that there are the
standard number of milliseconds in an hour.
|
Minutes |
toStandardMinutes()
Converts this duration to a period in minutes assuming that there are the
standard number of milliseconds in a minute.
|
Seconds |
toStandardSeconds()
Converts this duration to a period in seconds assuming that there are the
standard number of milliseconds in a second.
|
Duration |
withDurationAdded(long durationToAdd,
int scalar)
Returns a new duration with this length plus that specified multiplied by the scalar.
|
Duration |
withDurationAdded(ReadableDuration durationToAdd,
int scalar)
Returns a new duration with this length plus that specified multiplied by the scalar.
|
Duration |
withMillis(long duration)
Creates a new Duration instance with a different millisecond length.
|
getMillis, setMillis, toIntervalFrom, toIntervalTo, toPeriod, toPeriod, toPeriod, toPeriodFrom, toPeriodFrom, toPeriodTo, toPeriodTo
compareTo, equals, hashCode, isEqual, isLongerThan, isShorterThan, toPeriod, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
equals, getMillis, hashCode, isEqual, isLongerThan, isShorterThan, toPeriod, toString
compareTo
public static final Duration ZERO
public Duration(long duration)
duration
- the duration, in millisecondspublic Duration(long startInstant, long endInstant)
startInstant
- interval start, in millisecondsendInstant
- interval end, in millisecondsArithmeticException
- if the duration exceeds a 64-bit longpublic Duration(ReadableInstant start, ReadableInstant end)
start
- interval start, null means nowend
- interval end, null means nowArithmeticException
- if the duration exceeds a 64-bit longpublic Duration(Object duration)
ConverterManager
.duration
- duration to convertIllegalArgumentException
- if duration is invalidpublic static Duration parse(String str)
Duration
from the specified string.
This parses the format PTa.bS
, as per AbstractDuration.toString()
.
str
- the string to parse, not nullpublic static Duration standardDays(long days)
This method assumes that there are 24 hours in a day, 60 minutes in an hour, 60 seconds in a minute and 1000 milliseconds in a second. This will be true for most days, however days with Daylight Savings changes will not have 24 hours, so use this method with care.
A Duration is a representation of an amount of time. If you want to express
the concept of 'days' you should consider using the Days
class.
days
- the number of standard days in this durationArithmeticException
- if the days value is too largepublic static Duration standardHours(long hours)
This method assumes that there are 60 minutes in an hour, 60 seconds in a minute and 1000 milliseconds in a second. All currently supplied chronologies use this definition.
A Duration is a representation of an amount of time. If you want to express
the concept of 'hours' you should consider using the Hours
class.
hours
- the number of standard hours in this durationArithmeticException
- if the hours value is too largepublic static Duration standardMinutes(long minutes)
This method assumes that there are 60 seconds in a minute and 1000 milliseconds in a second. All currently supplied chronologies use this definition.
A Duration is a representation of an amount of time. If you want to express
the concept of 'minutes' you should consider using the Minutes
class.
minutes
- the number of standard minutes in this durationArithmeticException
- if the minutes value is too largepublic static Duration standardSeconds(long seconds)
This method assumes that there are 1000 milliseconds in a second. All currently supplied chronologies use this definition.
A Duration is a representation of an amount of time. If you want to express
the concept of 'seconds' you should consider using the Seconds
class.
seconds
- the number of standard seconds in this durationArithmeticException
- if the seconds value is too largepublic static Duration millis(long millis)
millis
- the number of standard milliseconds in this durationpublic long getStandardDays()
This method assumes that there are 24 hours in a day, 60 minutes in an hour, 60 seconds in a minute and 1000 milliseconds in a second. This will be true for most days, however days with Daylight Savings changes will not have 24 hours, so use this method with care.
This returns getMillis() / MILLIS_PER_DAY
.
The result is an integer division, thus excess milliseconds are truncated.
public long getStandardHours()
This method assumes that there are 60 minutes in an hour, 60 seconds in a minute and 1000 milliseconds in a second. All currently supplied chronologies use this definition.
This returns getMillis() / MILLIS_PER_HOUR
.
The result is an integer division, thus excess milliseconds are truncated.
public long getStandardMinutes()
This method assumes that there are 60 seconds in a minute and 1000 milliseconds in a second. All currently supplied chronologies use this definition.
This returns getMillis() / MILLIS_PER_MINUTE
.
The result is an integer division, thus excess milliseconds are truncated.
public long getStandardSeconds()
This method assumes that there are 1000 milliseconds in a second. All currently supplied chronologies use this definition.
This returns getMillis() / 1000
.
The result is an integer division, so 2999 millis returns 2 seconds.
public Duration toDuration()
Duration
object
by returning this
.toDuration
in interface ReadableDuration
toDuration
in class AbstractDuration
this
public Days toStandardDays()
This method assumes that there are 24 hours in a day, 60 minutes in an hour, 60 seconds in a minute and 1000 milliseconds in a second. This will be true for most days, however days with Daylight Savings changes will not have 24 hours, so use this method with care.
ArithmeticException
- if the number of days is too large to be representedpublic Hours toStandardHours()
This method assumes that there are 60 minutes in an hour, 60 seconds in a minute and 1000 milliseconds in a second. All currently supplied chronologies use this definition.
ArithmeticException
- if the number of hours is too large to be representedpublic Minutes toStandardMinutes()
This method assumes that there are 60 seconds in a minute and 1000 milliseconds in a second. All currently supplied chronologies use this definition.
ArithmeticException
- if the number of minutes is too large to be representedpublic Seconds toStandardSeconds()
This method assumes that there are 1000 milliseconds in a second. All currently supplied chronologies use this definition.
ArithmeticException
- if the number of seconds is too large to be representedpublic Duration withMillis(long duration)
duration
- the new length of the durationpublic Duration withDurationAdded(long durationToAdd, int scalar)
If the addition is zero, this instance is returned.
durationToAdd
- the duration to add to this onescalar
- the amount of times to add, such as -1 to subtract oncepublic Duration withDurationAdded(ReadableDuration durationToAdd, int scalar)
If the addition is zero, this instance is returned.
durationToAdd
- the duration to add to this one, null means zeroscalar
- the amount of times to add, such as -1 to subtract oncepublic Duration plus(long amount)
If the addition is zero, this instance is returned.
amount
- the duration to add to this onepublic Duration plus(ReadableDuration amount)
If the amount is zero, this instance is returned.
amount
- the duration to add to this one, null means zeropublic Duration minus(long amount)
If the addition is zero, this instance is returned.
amount
- the duration to take away from this onepublic Duration minus(ReadableDuration amount)
If the amount is zero, this instance is returned.
amount
- the duration to take away from this one, null means zeropublic Duration multipliedBy(long multiplicand)
If the multiplicand is one, this instance is returned.
multiplicand
- the multiplicand to multiply this one bypublic Duration dividedBy(long divisor)
If the divisor is one, this instance is returned.
divisor
- the divisor to divide this one bypublic Duration dividedBy(long divisor, RoundingMode roundingMode)
RoundingMode
can be specified.
This instance is immutable and is not altered.
If the divisor is one, this instance is returned.
divisor
- the divisor to divide this one byroundingMode
- the type of rounding desiredpublic Duration negated()
public Duration abs()
This instance is immutable and is not altered.
Copyright © 2002–2019 Joda.org. All rights reserved.