java.lang.Object | ||||
↳ | org.joda.time.base.AbstractInstant | |||
↳ | org.joda.time.base.AbstractDateTime | |||
↳ | org.joda.time.base.BaseDateTime | |||
↳ | org.joda.time.DateMidnight |
DateMidnight defines a date where the time component is fixed at midnight. The class uses a time zone, thus midnight is local unless a UTC time zone is used.
It is important to emphasise that this class represents the time of midnight on any given day. Note that midnight is defined as 00:00, which is at the very start of a day.
This class does not represent a day, but the millisecond instant at midnight.
If you need a class that represents the whole day, then an Interval
or
a LocalDate
may be more suitable.
This class uses a Chronology internally. The Chronology determines how the
millisecond instant value is converted into the date time fields.
The default Chronology is ISOChronology
which is the agreed
international standard and compatable with the modern Gregorian calendar.
Each individual field can be queried in two ways:
getDayOfMonth()
dayOfMonth().get()
DateMidnight is thread-safe and immutable, provided that the Chronology is as well. All standard Chronology classes supplied are thread-safe and immutable.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
DateMidnight.Property | DateMidnight.Property binds a DateMidnight to a DateTimeField allowing powerful datetime functionality to be easily accessed. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs an instance set to the current system millisecond time
using
ISOChronology in the default time zone. | |||||||||||
Constructs an instance set to the current system millisecond time
using
ISOChronology in the specified time zone. | |||||||||||
Constructs an instance set to the current system millisecond time
using the specified chronology.
| |||||||||||
Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z
using
ISOChronology in the default time zone. | |||||||||||
Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z
using
ISOChronology in the specified time zone. | |||||||||||
Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z
using the specified chronology.
| |||||||||||
Constructs an instance from an Object that represents a datetime.
| |||||||||||
Constructs an instance from an Object that represents a datetime,
forcing the time zone to that specified.
| |||||||||||
Constructs an instance from an Object that represents a datetime,
using the specified chronology.
| |||||||||||
Constructs an instance from datetime field values
using
ISOChronology in the default time zone. | |||||||||||
Constructs an instance from datetime field values
using
ISOChronology in the specified time zone. | |||||||||||
Constructs an instance from datetime field values
using the specified chronology.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Get the century of era property which provides access to advanced functionality.
| |||||||||||
Get the day of month property which provides access to advanced functionality.
| |||||||||||
Get the day of week property which provides access to advanced functionality.
| |||||||||||
Get the day of year property which provides access to advanced functionality.
| |||||||||||
Get the era property which provides access to advanced functionality.
| |||||||||||
Returns a copy of this date with the specified period taken away.
| |||||||||||
Returns a copy of this date with the specified duration taken away.
| |||||||||||
Returns a copy of this date with the specified duration taken away.
| |||||||||||
Returns a copy of this date minus the specified number of days.
| |||||||||||
Returns a copy of this date minus the specified number of months.
| |||||||||||
Returns a copy of this date minus the specified number of weeks.
| |||||||||||
Returns a copy of this date minus the specified number of years.
| |||||||||||
Get the month of year property which provides access to advanced functionality.
| |||||||||||
Returns a copy of this date with the specified period added.
| |||||||||||
Returns a copy of this date with the specified duration added.
| |||||||||||
Returns a copy of this date with the specified duration added.
| |||||||||||
Returns a copy of this date plus the specified number of days.
| |||||||||||
Returns a copy of this date plus the specified number of months.
| |||||||||||
Returns a copy of this date plus the specified number of weeks.
| |||||||||||
Returns a copy of this date plus the specified number of years.
| |||||||||||
Gets the property object for the specified type, which contains many useful methods.
| |||||||||||
Converts this object to an
Interval encompassing
the whole of this day. | |||||||||||
Converts this object to a
LocalDate with the
same date and chronology. | |||||||||||
This method is deprecated.
Use LocalDate instead of YearMonthDay
| |||||||||||
Get the week of a week based year property which provides access to advanced functionality.
| |||||||||||
Get the year of a week based year property which provides access to advanced functionality.
| |||||||||||
Returns a copy of this date with the century of era field updated.
| |||||||||||
Returns a copy of this date with a different chronology, potentially
changing the day in unexpected ways.
| |||||||||||
Returns a copy of this date with the day of month field updated.
| |||||||||||
Returns a copy of this date with the day of week field updated.
| |||||||||||
Returns a copy of this date with the day of year field updated.
| |||||||||||
Returns a copy of this date with the specified duration added.
| |||||||||||
Returns a copy of this date with the specified duration added.
| |||||||||||
Returns a copy of this date with the era field updated.
| |||||||||||
Returns a copy of this date with the specified field set to a new value.
| |||||||||||
Returns a copy of this date with the value of the specified field increased.
| |||||||||||
Returns a copy of this date with the partial set of fields replacing those
from this instance.
| |||||||||||
Returns a copy of this date with a different millisecond instant.
| |||||||||||
Returns a copy of this date with the month of year field updated.
| |||||||||||
Returns a copy of this date with the specified period added.
| |||||||||||
Returns a copy of this date with the week of weekyear field updated.
| |||||||||||
Returns a copy of this date with the weekyear field updated.
| |||||||||||
Returns a copy of this date with the year field updated.
| |||||||||||
Returns a copy of this date with the year of century field updated.
| |||||||||||
Returns a copy of this date with the year of era field updated.
| |||||||||||
Returns a copy of this date with a different time zone, preserving the day
The returned object will have a local time of midnight in the new zone on
the same day as the original instant.
| |||||||||||
Get the year property which provides access to advanced functionality.
| |||||||||||
Get the year of century property which provides access to advanced functionality.
| |||||||||||
Get the year of era property which provides access to advanced functionality.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Rounds the specified instant to midnight.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.joda.time.base.BaseDateTime
| |||||||||||
From class
org.joda.time.base.AbstractDateTime
| |||||||||||
From class
org.joda.time.base.AbstractInstant
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
java.lang.Comparable
| |||||||||||
From interface
org.joda.time.ReadableDateTime
| |||||||||||
From interface
org.joda.time.ReadableInstant
|
Constructs an instance set to the current system millisecond time
using ISOChronology
in the default time zone.
The constructed object will have a local time of midnight.
Constructs an instance set to the current system millisecond time
using ISOChronology
in the specified time zone.
The constructed object will have a local time of midnight.
If the specified time zone is null, the default zone is used.
zone | the time zone, null means default zone |
---|
Constructs an instance set to the current system millisecond time using the specified chronology. The constructed object will have a local time of midnight.
If the chronology is null, ISOChronology
in the default time zone is used.
chronology | the chronology, null means ISOChronology in default zone |
---|
Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z
using ISOChronology
in the default time zone.
The constructed object will have a local time of midnight.
instant | the milliseconds from 1970-01-01T00:00:00Z |
---|
Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z
using ISOChronology
in the specified time zone.
The constructed object will have a local time of midnight.
If the specified time zone is null, the default zone is used.
instant | the milliseconds from 1970-01-01T00:00:00Z |
---|---|
zone | the time zone, null means default zone |
Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z using the specified chronology. The constructed object will have a local time of midnight.
If the chronology is null, ISOChronology
in the default time zone is used.
instant | the milliseconds from 1970-01-01T00:00:00Z |
---|---|
chronology | the chronology, null means ISOChronology in default zone |
Constructs an instance from an Object that represents a datetime. The constructed object will have a local time of midnight.
If the object implies a chronology (such as GregorianCalendar does), then that chronology will be used. Otherwise, ISO default is used. Thus if a GregorianCalendar is passed in, the chronology used will be GJ, but if a Date is passed in the chronology will be ISO.
The recognised object types are defined in
ConverterManager
and
include ReadableInstant, String, Calendar and Date.
The String formats are described by dateTimeParser()
.
instant | the datetime object, null means now |
---|
IllegalArgumentException | if the instant is invalid |
---|
Constructs an instance from an Object that represents a datetime, forcing the time zone to that specified. The constructed object will have a local time of midnight.
If the object implies a chronology (such as GregorianCalendar does), then that chronology will be used, but with the time zone adjusted. Otherwise, ISO is used in the specified time zone. If the specified time zone is null, the default zone is used. Thus if a GregorianCalendar is passed in, the chronology used will be GJ, but if a Date is passed in the chronology will be ISO.
The recognised object types are defined in
ConverterManager
and
include ReadableInstant, String, Calendar and Date.
The String formats are described by dateTimeParser()
.
instant | the datetime object, null means now |
---|---|
zone | the time zone, null means default time zone |
IllegalArgumentException | if the instant is invalid |
---|
Constructs an instance from an Object that represents a datetime, using the specified chronology. The constructed object will have a local time of midnight.
If the chronology is null, ISO in the default time zone is used. Any chronology implied by the object (such as GregorianCalendar does) is ignored.
The recognised object types are defined in
ConverterManager
and
include ReadableInstant, String, Calendar and Date.
The String formats are described by dateTimeParser()
.
instant | the datetime object, null means now |
---|---|
chronology | the chronology, null means ISOChronology in default zone |
IllegalArgumentException | if the instant is invalid |
---|
Constructs an instance from datetime field values
using ISOChronology
in the default time zone.
The constructed object will have a local time of midnight.
year | the year |
---|---|
monthOfYear | the month of the year |
dayOfMonth | the day of the month |
Constructs an instance from datetime field values
using ISOChronology
in the specified time zone.
The constructed object will have a local time of midnight.
If the specified time zone is null, the default zone is used.
year | the year |
---|---|
monthOfYear | the month of the year |
dayOfMonth | the day of the month |
zone | the time zone, null means default time zone |
Constructs an instance from datetime field values using the specified chronology. The constructed object will have a local time of midnight.
If the chronology is null, ISOChronology
in the default time zone is used.
year | the year |
---|---|
monthOfYear | the month of the year |
dayOfMonth | the day of the month |
chronology | the chronology, null means ISOChronology in default zone |
Get the century of era property which provides access to advanced functionality.
Get the day of month property which provides access to advanced functionality.
Get the day of week property which provides access to advanced functionality.
Get the day of year property which provides access to advanced functionality.
Get the era property which provides access to advanced functionality.
Returns a copy of this date with the specified period taken away.
If the amount is zero or null, then this
is returned.
This method is typically used to subtract complex period instances.
Subtracting one field is best achieved using methods
like minusYears(int)
.
period | the period to reduce this instant by |
---|
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date with the specified duration taken away.
If the amount is zero or null, then this
is returned.
duration | the duration, in millis, to reduce this instant by |
---|
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date with the specified duration taken away.
If the amount is zero or null, then this
is returned.
duration | the duration to reduce this instant by |
---|
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date minus the specified number of days.
This datetime instance is immutable and unaffected by this method call.
The following three lines are identical in effect:
DateMidnight subtracted = dt.minusDays(6); DateMidnight subtracted = dt.minus(Period.days(6)); DateMidnight subtracted = dt.withFieldAdded(DurationFieldType.days(), -6);
days | the amount of days to subtract, may be negative |
---|
Returns a copy of this date minus the specified number of months.
This datetime instance is immutable and unaffected by this method call.
The following three lines are identical in effect:
DateMidnight subtracted = dt.minusMonths(6); DateMidnight subtracted = dt.minus(Period.months(6)); DateMidnight subtracted = dt.withFieldAdded(DurationFieldType.months(), -6);
months | the amount of months to subtract, may be negative |
---|
Returns a copy of this date minus the specified number of weeks.
This datetime instance is immutable and unaffected by this method call.
The following three lines are identical in effect:
DateMidnight subtracted = dt.minusWeeks(6); DateMidnight subtracted = dt.minus(Period.weeks(6)); DateMidnight subtracted = dt.withFieldAdded(DurationFieldType.weeks(), -6);
weeks | the amount of weeks to subtract, may be negative |
---|
Returns a copy of this date minus the specified number of years.
This datetime instance is immutable and unaffected by this method call.
The following three lines are identical in effect:
DateTime subtracted = dt.minusYears(6); DateTime subtracted = dt.minus(Period.years(6)); DateTime subtracted = dt.withFieldAdded(DurationFieldType.years(), -6);
years | the amount of years to subtract, may be negative |
---|
Get the month of year property which provides access to advanced functionality.
Returns a copy of this date with the specified period added.
If the amount is zero or null, then this
is returned.
This method is typically used to add complex period instances.
Adding one field is best achieved using methods
like plusYears(int)
.
period | the duration to add to this one, null means zero |
---|
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date with the specified duration added.
If the amount is zero, then this
is returned.
duration | the duration, in millis, to add to this one |
---|
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date with the specified duration added.
If the amount is zero or null, then this
is returned.
duration | the duration to add to this one, null means zero |
---|
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date plus the specified number of days.
This datetime instance is immutable and unaffected by this method call.
The following three lines are identical in effect:
DateMidnight added = dt.plusDays(6); DateMidnight added = dt.plus(Period.days(6)); DateMidnight added = dt.withFieldAdded(DurationFieldType.days(), 6);
days | the amount of days to add, may be negative |
---|
Returns a copy of this date plus the specified number of months.
This datetime instance is immutable and unaffected by this method call.
The following three lines are identical in effect:
DateMidnight added = dt.plusMonths(6); DateMidnight added = dt.plus(Period.months(6)); DateMidnight added = dt.withFieldAdded(DurationFieldType.months(), 6);
months | the amount of months to add, may be negative |
---|
Returns a copy of this date plus the specified number of weeks.
This datetime instance is immutable and unaffected by this method call.
The following three lines are identical in effect:
DateMidnight added = dt.plusWeeks(6); DateMidnight added = dt.plus(Period.weeks(6)); DateMidnight added = dt.withFieldAdded(DurationFieldType.weeks(), 6);
weeks | the amount of weeks to add, may be negative |
---|
Returns a copy of this date plus the specified number of years.
This datetime instance is immutable and unaffected by this method call.
The following three lines are identical in effect:
DateMidnight added = dt.plusYears(6); DateMidnight added = dt.plus(Period.years(6)); DateMidnight added = dt.withFieldAdded(DurationFieldType.years(), 6);
years | the amount of years to add, may be negative |
---|
Gets the property object for the specified type, which contains many useful methods.
type | the field type to get the chronology for |
---|
IllegalArgumentException | if the field is null or unsupported |
---|
Converts this object to an Interval
encompassing
the whole of this day.
The interval starts at midnight 00:00 and ends at 00:00 the following day, (which is not included in the interval, as intervals are half-open).
Converts this object to a LocalDate
with the
same date and chronology.
This method is deprecated.
Use LocalDate instead of YearMonthDay
Converts this object to a YearMonthDay
using the
same date and chronology.
Get the week of a week based year property which provides access to advanced functionality.
Get the year of a week based year property which provides access to advanced functionality.
Returns a copy of this date with the century of era field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of century of era changed.
centuryOfEra | the centurey of era to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with a different chronology, potentially changing the day in unexpected ways.
This method creates a new DateMidnight using the midnight millisecond value and the new chronology. If the same or similar chronology is specified, but with a different time zone, the day may change. This occurs because the new DateMidnight rounds down the millisecond value to get to midnight, and the time zone change may result in a rounding down to a different day.
For example, changing time zone from London (+00:00) to Paris (+01:00) will retain the same day, but changing from Paris to London will change the day. (When its midnight in London its the same day in Paris, but when its midnight in Paris its still the previous day in London)
To avoid these unusual effects, use withZoneRetainFields(DateTimeZone)
to change time zones.
newChronology | the new chronology |
---|
Returns a copy of this date with the day of month field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of day of month changed.
dayOfMonth | the day of month to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the day of week field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of day of week changed.
dayOfWeek | the day of week to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the day of year field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of day of year changed.
dayOfYear | the day of year to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the specified duration added.
If the addition is zero, then this
is returned.
durationToAdd | the duration to add to this one |
---|---|
scalar | the amount of times to add, such as -1 to subtract once |
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date with the specified duration added.
If the addition is zero, then this
is returned.
durationToAdd | the duration to add to this one, null means zero |
---|---|
scalar | the amount of times to add, such as -1 to subtract once |
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date with the era field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of era changed.
era | the era to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the specified field set to a new value.
For example, if the field type is dayOfMonth
then the day of month
field would be changed in the returned instance.
If the field type is null, then this
is returned.
These three lines are equivalent:
DateTime updated = dt.withField(DateTimeFieldType.dayOfMonth(), 6); DateTime updated = dt.dayOfMonth().setCopy(6); DateTime updated = dt.property(DateTimeFieldType.dayOfMonth()).setCopy(6);
fieldType | the field type to set, not null |
---|---|
value | the value to set |
IllegalArgumentException | if the value is null or invalid |
---|
Returns a copy of this date with the value of the specified field increased.
If the addition is zero or the field is null, then this
is returned.
These three lines are equivalent:
DateMidnight added = dt.withFieldAdded(DateTimeFieldType.year(), 6); DateMidnight added = dt.plusYears(6); DateMidnight added = dt.year().addToCopy(6);
fieldType | the field type to add to, not null |
---|---|
amount | the amount to add |
IllegalArgumentException | if the value is null or invalid |
---|---|
ArithmeticException | if the new datetime exceeds the capacity of a long |
Returns a copy of this date with the partial set of fields replacing those from this instance.
For example, if the partial is a LocalDate
then the date fields
would be changed in the returned instance.
If the partial is null, then this
is returned.
partial | the partial set of fields to apply to this datetime, null ignored |
---|
IllegalArgumentException | if any value is invalid |
---|
Returns a copy of this date with a different millisecond instant. The returned object will have a local time of midnight.
Only the millis will change, the chronology and time zone are kept.
The returned object will be either be a new instance or this
.
newMillis | the new millis, from 1970-01-01T00:00:00Z |
---|
Returns a copy of this date with the month of year field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of month of year changed.
monthOfYear | the month of year to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the specified period added.
If the addition is zero, then this
is returned.
This method is typically used to add multiple copies of complex
period instances. Adding one field is best achieved using methods
like withFieldAdded(DurationFieldType, int)
or plusYears(int)
.
period | the period to add to this one, null means zero |
---|---|
scalar | the amount of times to add, such as -1 to subtract once |
ArithmeticException | if the new datetime exceeds the capacity of a long |
---|
Returns a copy of this date with the week of weekyear field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of week of weekyear changed.
weekOfWeekyear | the week of weekyear to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the weekyear field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of weekyear changed.
weekyear | the weekyear to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the year field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of year changed.
year | the year to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the year of century field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of year of century changed.
yearOfCentury | the year of century to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with the year of era field updated.
DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of year of era changed.
yearOfEra | the year of era to set |
---|
IllegalArgumentException | if the value is invalid |
---|
Returns a copy of this date with a different time zone, preserving the day The returned object will have a local time of midnight in the new zone on the same day as the original instant.
newZone | the new time zone, null means default |
---|
Get the year property which provides access to advanced functionality.
Get the year of century property which provides access to advanced functionality.
Get the year of era property which provides access to advanced functionality.
Rounds the specified instant to midnight.
instant | the milliseconds from 1970-01-01T00:00:00Z to round |
---|---|
chronology | the chronology to use, not null |