org.joda.time
Class DateMidnight

java.lang.Object
  extended by org.joda.time.base.AbstractInstant
      extended by org.joda.time.base.AbstractDateTime
          extended by org.joda.time.base.BaseDateTime
              extended by org.joda.time.DateMidnight
All Implemented Interfaces:
Serializable, Comparable<ReadableInstant>, ReadableDateTime, ReadableInstant

public final class DateMidnight
extends BaseDateTime
implements ReadableDateTime, Serializable

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:

The second technique also provides access to other useful methods on the field:

DateMidnight is thread-safe and immutable, provided that the Chronology is as well. All standard Chronology classes supplied are thread-safe and immutable.

Since:
1.0
Author:
Stephen Colebourne
See Also:
Serialized Form

Nested Class Summary
static class DateMidnight.Property
          DateMidnight.Property binds a DateMidnight to a DateTimeField allowing powerful datetime functionality to be easily accessed.
 
Constructor Summary
DateMidnight()
          Constructs an instance set to the current system millisecond time using ISOChronology in the default time zone.
DateMidnight(Chronology chronology)
          Constructs an instance set to the current system millisecond time using the specified chronology.
DateMidnight(DateTimeZone zone)
          Constructs an instance set to the current system millisecond time using ISOChronology in the specified time zone.
DateMidnight(int year, int monthOfYear, int dayOfMonth)
          Constructs an instance from datetime field values using ISOChronology in the default time zone.
DateMidnight(int year, int monthOfYear, int dayOfMonth, Chronology chronology)
          Constructs an instance from datetime field values using the specified chronology.
DateMidnight(int year, int monthOfYear, int dayOfMonth, DateTimeZone zone)
          Constructs an instance from datetime field values using ISOChronology in the specified time zone.
DateMidnight(long instant)
          Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z using ISOChronology in the default time zone.
DateMidnight(long instant, Chronology chronology)
          Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z using the specified chronology.
DateMidnight(long instant, DateTimeZone zone)
          Constructs an instance set to the milliseconds from 1970-01-01T00:00:00Z using ISOChronology in the specified time zone.
DateMidnight(Object instant)
          Constructs an instance from an Object that represents a datetime.
DateMidnight(Object instant, Chronology chronology)
          Constructs an instance from an Object that represents a datetime, using the specified chronology.
DateMidnight(Object instant, DateTimeZone zone)
          Constructs an instance from an Object that represents a datetime, forcing the time zone to that specified.
 
Method Summary
 DateMidnight.Property centuryOfEra()
          Get the century of era property which provides access to advanced functionality.
protected  long checkInstant(long instant, Chronology chronology)
          Rounds the specified instant to midnight.
 DateMidnight.Property dayOfMonth()
          Get the day of month property which provides access to advanced functionality.
 DateMidnight.Property dayOfWeek()
          Get the day of week property which provides access to advanced functionality.
 DateMidnight.Property dayOfYear()
          Get the day of year property which provides access to advanced functionality.
 DateMidnight.Property era()
          Get the era property which provides access to advanced functionality.
 DateMidnight minus(long duration)
          Returns a copy of this date with the specified duration taken away.
 DateMidnight minus(ReadableDuration duration)
          Returns a copy of this date with the specified duration taken away.
 DateMidnight minus(ReadablePeriod period)
          Returns a copy of this date with the specified period taken away.
 DateMidnight minusDays(int days)
          Returns a copy of this date minus the specified number of days.
 DateMidnight minusMonths(int months)
          Returns a copy of this date minus the specified number of months.
 DateMidnight minusWeeks(int weeks)
          Returns a copy of this date minus the specified number of weeks.
 DateMidnight minusYears(int years)
          Returns a copy of this date minus the specified number of years.
 DateMidnight.Property monthOfYear()
          Get the month of year property which provides access to advanced functionality.
static DateMidnight now()
          Obtains a DateMidnight set to the current system millisecond time using ISOChronology in the default time zone.
static DateMidnight now(Chronology chronology)
          Obtains a DateMidnight set to the current system millisecond time using the specified chronology.
static DateMidnight now(DateTimeZone zone)
          Obtains a DateMidnight set to the current system millisecond time using ISOChronology in the specified time zone.
static DateMidnight parse(String str)
          Parses a DateMidnight from the specified string.
static DateMidnight parse(String str, DateTimeFormatter formatter)
          Parses a DateMidnight from the specified string using a formatter.
 DateMidnight plus(long duration)
          Returns a copy of this date with the specified duration added.
 DateMidnight plus(ReadableDuration duration)
          Returns a copy of this date with the specified duration added.
 DateMidnight plus(ReadablePeriod period)
          Returns a copy of this date with the specified period added.
 DateMidnight plusDays(int days)
          Returns a copy of this date plus the specified number of days.
 DateMidnight plusMonths(int months)
          Returns a copy of this date plus the specified number of months.
 DateMidnight plusWeeks(int weeks)
          Returns a copy of this date plus the specified number of weeks.
 DateMidnight plusYears(int years)
          Returns a copy of this date plus the specified number of years.
 DateMidnight.Property property(DateTimeFieldType type)
          Gets the property object for the specified type, which contains many useful methods.
 Interval toInterval()
          Converts this object to an Interval encompassing the whole of this day.
 LocalDate toLocalDate()
          Converts this object to a LocalDate with the same date and chronology.
 YearMonthDay toYearMonthDay()
          Deprecated. Use LocalDate instead of YearMonthDay
 DateMidnight.Property weekOfWeekyear()
          Get the week of a week based year property which provides access to advanced functionality.
 DateMidnight.Property weekyear()
          Get the year of a week based year property which provides access to advanced functionality.
 DateMidnight withCenturyOfEra(int centuryOfEra)
          Returns a copy of this date with the century of era field updated.
 DateMidnight withChronology(Chronology newChronology)
          Returns a copy of this date with a different chronology, potentially changing the day in unexpected ways.
 DateMidnight withDayOfMonth(int dayOfMonth)
          Returns a copy of this date with the day of month field updated.
 DateMidnight withDayOfWeek(int dayOfWeek)
          Returns a copy of this date with the day of week field updated.
 DateMidnight withDayOfYear(int dayOfYear)
          Returns a copy of this date with the day of year field updated.
 DateMidnight withDurationAdded(long durationToAdd, int scalar)
          Returns a copy of this date with the specified duration added.
 DateMidnight withDurationAdded(ReadableDuration durationToAdd, int scalar)
          Returns a copy of this date with the specified duration added.
 DateMidnight withEra(int era)
          Returns a copy of this date with the era field updated.
 DateMidnight withField(DateTimeFieldType fieldType, int value)
          Returns a copy of this date with the specified field set to a new value.
 DateMidnight withFieldAdded(DurationFieldType fieldType, int amount)
          Returns a copy of this date with the value of the specified field increased.
 DateMidnight withFields(ReadablePartial partial)
          Returns a copy of this date with the partial set of fields replacing those from this instance.
 DateMidnight withMillis(long newMillis)
          Returns a copy of this date with a different millisecond instant.
 DateMidnight withMonthOfYear(int monthOfYear)
          Returns a copy of this date with the month of year field updated.
 DateMidnight withPeriodAdded(ReadablePeriod period, int scalar)
          Returns a copy of this date with the specified period added.
 DateMidnight withWeekOfWeekyear(int weekOfWeekyear)
          Returns a copy of this date with the week of weekyear field updated.
 DateMidnight withWeekyear(int weekyear)
          Returns a copy of this date with the weekyear field updated.
 DateMidnight withYear(int year)
          Returns a copy of this date with the year field updated.
 DateMidnight withYearOfCentury(int yearOfCentury)
          Returns a copy of this date with the year of century field updated.
 DateMidnight withYearOfEra(int yearOfEra)
          Returns a copy of this date with the year of era field updated.
 DateMidnight withZoneRetainFields(DateTimeZone newZone)
          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.
 DateMidnight.Property year()
          Get the year property which provides access to advanced functionality.
 DateMidnight.Property yearOfCentury()
          Get the year of century property which provides access to advanced functionality.
 DateMidnight.Property yearOfEra()
          Get the year of era property which provides access to advanced functionality.
 
Methods inherited from class org.joda.time.base.BaseDateTime
checkChronology, getChronology, getMillis, setChronology, setMillis
 
Methods inherited from class org.joda.time.base.AbstractDateTime
get, getCenturyOfEra, getDayOfMonth, getDayOfWeek, getDayOfYear, getEra, getHourOfDay, getMillisOfDay, getMillisOfSecond, getMinuteOfDay, getMinuteOfHour, getMonthOfYear, getSecondOfDay, getSecondOfMinute, getWeekOfWeekyear, getWeekyear, getYear, getYearOfCentury, getYearOfEra, toCalendar, toGregorianCalendar, toString, toString
 
Methods inherited from class org.joda.time.base.AbstractInstant
compareTo, equals, get, getZone, hashCode, isAfter, isAfter, isAfterNow, isBefore, isBefore, isBeforeNow, isEqual, isEqual, isEqualNow, isSupported, toDate, toDateTime, toDateTime, toDateTime, toDateTimeISO, toInstant, toMutableDateTime, toMutableDateTime, toMutableDateTime, toMutableDateTimeISO, toString, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.joda.time.ReadableDateTime
getCenturyOfEra, getDayOfMonth, getDayOfWeek, getDayOfYear, getEra, getHourOfDay, getMillisOfDay, getMillisOfSecond, getMinuteOfDay, getMinuteOfHour, getMonthOfYear, getSecondOfDay, getSecondOfMinute, getWeekOfWeekyear, getWeekyear, getYear, getYearOfCentury, getYearOfEra, toDateTime, toMutableDateTime, toString, toString
 
Methods inherited from interface org.joda.time.ReadableInstant
equals, get, getChronology, getMillis, getZone, hashCode, isAfter, isBefore, isEqual, isSupported, toInstant, toString
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Constructor Detail

DateMidnight

public DateMidnight()
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.

See Also:
now()

DateMidnight

public DateMidnight(DateTimeZone zone)
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.

Parameters:
zone - the time zone, null means default zone
See Also:
now(DateTimeZone)

DateMidnight

public DateMidnight(Chronology chronology)
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.

Parameters:
chronology - the chronology, null means ISOChronology in default zone
See Also:
now(Chronology)

DateMidnight

public DateMidnight(long instant)
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.

Parameters:
instant - the milliseconds from 1970-01-01T00:00:00Z

DateMidnight

public DateMidnight(long instant,
                    DateTimeZone zone)
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.

Parameters:
instant - the milliseconds from 1970-01-01T00:00:00Z
zone - the time zone, null means default zone

DateMidnight

public DateMidnight(long instant,
                    Chronology chronology)
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.

Parameters:
instant - the milliseconds from 1970-01-01T00:00:00Z
chronology - the chronology, null means ISOChronology in default zone

DateMidnight

public DateMidnight(Object instant)
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 ISODateTimeFormat.dateTimeParser().

Parameters:
instant - the datetime object, null means now
Throws:
IllegalArgumentException - if the instant is invalid

DateMidnight

public DateMidnight(Object instant,
                    DateTimeZone zone)
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 ISODateTimeFormat.dateTimeParser().

Parameters:
instant - the datetime object, null means now
zone - the time zone, null means default time zone
Throws:
IllegalArgumentException - if the instant is invalid

DateMidnight

public DateMidnight(Object instant,
                    Chronology chronology)
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 ISODateTimeFormat.dateTimeParser().

Parameters:
instant - the datetime object, null means now
chronology - the chronology, null means ISOChronology in default zone
Throws:
IllegalArgumentException - if the instant is invalid

DateMidnight

public DateMidnight(int year,
                    int monthOfYear,
                    int dayOfMonth)
Constructs an instance from datetime field values using ISOChronology in the default time zone. The constructed object will have a local time of midnight.

Parameters:
year - the year
monthOfYear - the month of the year
dayOfMonth - the day of the month

DateMidnight

public DateMidnight(int year,
                    int monthOfYear,
                    int dayOfMonth,
                    DateTimeZone zone)
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.

Parameters:
year - the year
monthOfYear - the month of the year
dayOfMonth - the day of the month
zone - the time zone, null means default time zone

DateMidnight

public DateMidnight(int year,
                    int monthOfYear,
                    int dayOfMonth,
                    Chronology chronology)
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.

Parameters:
year - the year
monthOfYear - the month of the year
dayOfMonth - the day of the month
chronology - the chronology, null means ISOChronology in default zone
Method Detail

now

public static DateMidnight now()
Obtains a DateMidnight set to the current system millisecond time using ISOChronology in the default time zone. The constructed object will have a local time of midnight.

Returns:
the current date, not null
Since:
2.0

now

public static DateMidnight now(DateTimeZone zone)
Obtains a DateMidnight set to the current system millisecond time using ISOChronology in the specified time zone. The constructed object will have a local time of midnight.

Parameters:
zone - the time zone, not null
Returns:
the current date, not null
Since:
2.0

now

public static DateMidnight now(Chronology chronology)
Obtains a DateMidnight set to the current system millisecond time using the specified chronology. The constructed object will have a local time of midnight.

Parameters:
chronology - the chronology, not null
Returns:
the current date, not null
Since:
2.0

parse

public static DateMidnight parse(String str)
Parses a DateMidnight from the specified string.

This uses ISODateTimeFormat.dateTimeParser().

Parameters:
str - the string to parse, not null
Since:
2.0

parse

public static DateMidnight parse(String str,
                                 DateTimeFormatter formatter)
Parses a DateMidnight from the specified string using a formatter.

Parameters:
str - the string to parse, not null
formatter - the formatter to use, not null
Since:
2.0

checkInstant

protected long checkInstant(long instant,
                            Chronology chronology)
Rounds the specified instant to midnight.

Overrides:
checkInstant in class BaseDateTime
Parameters:
instant - the milliseconds from 1970-01-01T00:00:00Z to round
chronology - the chronology to use, not null
Returns:
the updated instant, rounded to midnight

withMillis

public DateMidnight withMillis(long newMillis)
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.

Parameters:
newMillis - the new millis, from 1970-01-01T00:00:00Z
Returns:
a copy of this instant with different millis

withChronology

public DateMidnight withChronology(Chronology newChronology)
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.

Parameters:
newChronology - the new chronology
Returns:
a copy of this instant with a different chronology

withZoneRetainFields

public DateMidnight withZoneRetainFields(DateTimeZone newZone)
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.

Parameters:
newZone - the new time zone, null means default
Returns:
a copy of this instant with a different time zone

withFields

public DateMidnight withFields(ReadablePartial partial)
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.

Parameters:
partial - the partial set of fields to apply to this datetime, null ignored
Returns:
a copy of this datetime with a different set of fields
Throws:
IllegalArgumentException - if any value is invalid

withField

public DateMidnight withField(DateTimeFieldType fieldType,
                              int value)
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);
 

Parameters:
fieldType - the field type to set, not null
value - the value to set
Returns:
a copy of this datetime with the field set
Throws:
IllegalArgumentException - if the value is null or invalid

withFieldAdded

public DateMidnight withFieldAdded(DurationFieldType fieldType,
                                   int amount)
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);
 

Parameters:
fieldType - the field type to add to, not null
amount - the amount to add
Returns:
a copy of this datetime with the field updated
Throws:
IllegalArgumentException - if the value is null or invalid
ArithmeticException - if the new datetime exceeds the capacity of a long

withDurationAdded

public DateMidnight withDurationAdded(long durationToAdd,
                                      int scalar)
Returns a copy of this date with the specified duration added.

If the addition is zero, then this is returned.

Parameters:
durationToAdd - the duration to add to this one
scalar - the amount of times to add, such as -1 to subtract once
Returns:
a copy of this datetime with the duration added
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

withDurationAdded

public DateMidnight withDurationAdded(ReadableDuration durationToAdd,
                                      int scalar)
Returns a copy of this date with the specified duration added.

If the addition is zero, then this is returned.

Parameters:
durationToAdd - the duration to add to this one, null means zero
scalar - the amount of times to add, such as -1 to subtract once
Returns:
a copy of this datetime with the duration added
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

withPeriodAdded

public DateMidnight withPeriodAdded(ReadablePeriod period,
                                    int scalar)
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).

Parameters:
period - the period to add to this one, null means zero
scalar - the amount of times to add, such as -1 to subtract once
Returns:
a copy of this datetime with the period added
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

plus

public DateMidnight plus(long duration)
Returns a copy of this date with the specified duration added.

If the amount is zero, then this is returned.

Parameters:
duration - the duration, in millis, to add to this one
Returns:
a copy of this datetime with the duration added
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

plus

public DateMidnight plus(ReadableDuration duration)
Returns a copy of this date with the specified duration added.

If the amount is zero or null, then this is returned.

Parameters:
duration - the duration to add to this one, null means zero
Returns:
a copy of this datetime with the duration added
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

plus

public DateMidnight plus(ReadablePeriod period)
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).

Parameters:
period - the duration to add to this one, null means zero
Returns:
a copy of this datetime with the period added
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

plusYears

public DateMidnight plusYears(int years)
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);
 

Parameters:
years - the amount of years to add, may be negative
Returns:
the new datetime plus the increased years
Since:
1.1

plusMonths

public DateMidnight plusMonths(int months)
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);
 

Parameters:
months - the amount of months to add, may be negative
Returns:
the new datetime plus the increased months
Since:
1.1

plusWeeks

public DateMidnight plusWeeks(int weeks)
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);
 

Parameters:
weeks - the amount of weeks to add, may be negative
Returns:
the new datetime plus the increased weeks
Since:
1.1

plusDays

public DateMidnight plusDays(int days)
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);
 

Parameters:
days - the amount of days to add, may be negative
Returns:
the new datetime plus the increased days
Since:
1.1

minus

public DateMidnight minus(long duration)
Returns a copy of this date with the specified duration taken away.

If the amount is zero or null, then this is returned.

Parameters:
duration - the duration, in millis, to reduce this instant by
Returns:
a copy of this datetime with the duration taken away
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

minus

public DateMidnight minus(ReadableDuration duration)
Returns a copy of this date with the specified duration taken away.

If the amount is zero or null, then this is returned.

Parameters:
duration - the duration to reduce this instant by
Returns:
a copy of this datetime with the duration taken away
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

minus

public DateMidnight minus(ReadablePeriod period)
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).

Parameters:
period - the period to reduce this instant by
Returns:
a copy of this datetime with the period taken away
Throws:
ArithmeticException - if the new datetime exceeds the capacity of a long

minusYears

public DateMidnight minusYears(int years)
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);
 

Parameters:
years - the amount of years to subtract, may be negative
Returns:
the new datetime minus the increased years
Since:
1.1

minusMonths

public DateMidnight minusMonths(int months)
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);
 

Parameters:
months - the amount of months to subtract, may be negative
Returns:
the new datetime minus the increased months
Since:
1.1

minusWeeks

public DateMidnight minusWeeks(int weeks)
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);
 

Parameters:
weeks - the amount of weeks to subtract, may be negative
Returns:
the new datetime minus the increased weeks
Since:
1.1

minusDays

public DateMidnight minusDays(int days)
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);
 

Parameters:
days - the amount of days to subtract, may be negative
Returns:
the new datetime minus the increased days
Since:
1.1

property

public DateMidnight.Property property(DateTimeFieldType type)
Gets the property object for the specified type, which contains many useful methods.

Parameters:
type - the field type to get the chronology for
Returns:
the property object
Throws:
IllegalArgumentException - if the field is null or unsupported

toYearMonthDay

@Deprecated
public YearMonthDay toYearMonthDay()
Deprecated. Use LocalDate instead of YearMonthDay

Converts this object to a YearMonthDay using the same date and chronology.

Returns:
a YearMonthDay using the same millis and chronology

toLocalDate

public LocalDate toLocalDate()
Converts this object to a LocalDate with the same date and chronology.

Returns:
a LocalDate with the same date and chronology
Since:
1.3

toInterval

public Interval toInterval()
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).

Returns:
an interval over the day

withEra

public DateMidnight withEra(int era)
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.

Parameters:
era - the era to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withCenturyOfEra

public DateMidnight withCenturyOfEra(int centuryOfEra)
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.

Parameters:
centuryOfEra - the centurey of era to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withYearOfEra

public DateMidnight withYearOfEra(int yearOfEra)
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.

Parameters:
yearOfEra - the year of era to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withYearOfCentury

public DateMidnight withYearOfCentury(int yearOfCentury)
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.

Parameters:
yearOfCentury - the year of century to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withYear

public DateMidnight withYear(int year)
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.

Parameters:
year - the year to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withWeekyear

public DateMidnight withWeekyear(int weekyear)
Returns a copy of this date with the weekyear field updated.

The weekyear is the year that matches with the weekOfWeekyear field. In the standard ISO8601 week algorithm, the first week of the year is that in which at least 4 days are in the year. As a result of this definition, day 1 of the first week may be in the previous year. The weekyear allows you to query the effective year for that day.

DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of weekyear changed.

Parameters:
weekyear - the weekyear to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withMonthOfYear

public DateMidnight withMonthOfYear(int monthOfYear)
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.

Parameters:
monthOfYear - the month of year to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withWeekOfWeekyear

public DateMidnight withWeekOfWeekyear(int weekOfWeekyear)
Returns a copy of this date with the week of weekyear field updated.

This field is associated with the "weekyear" via withWeekyear(int). In the standard ISO8601 week algorithm, the first week of the year is that in which at least 4 days are in the year. As a result of this definition, day 1 of the first week may be in the previous year.

DateMidnight is immutable, so there are no set methods. Instead, this method returns a new instance with the value of week of weekyear changed.

Parameters:
weekOfWeekyear - the week of weekyear to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withDayOfYear

public DateMidnight withDayOfYear(int dayOfYear)
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.

Parameters:
dayOfYear - the day of year to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withDayOfMonth

public DateMidnight withDayOfMonth(int dayOfMonth)
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.

Parameters:
dayOfMonth - the day of month to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

withDayOfWeek

public DateMidnight withDayOfWeek(int dayOfWeek)
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.

Parameters:
dayOfWeek - the day of week to set
Returns:
a copy of this object with the field set
Throws:
IllegalArgumentException - if the value is invalid
Since:
1.3

era

public DateMidnight.Property era()
Get the era property which provides access to advanced functionality.

Returns:
the era property

centuryOfEra

public DateMidnight.Property centuryOfEra()
Get the century of era property which provides access to advanced functionality.

Returns:
the year of era property

yearOfCentury

public DateMidnight.Property yearOfCentury()
Get the year of century property which provides access to advanced functionality.

Returns:
the year of era property

yearOfEra

public DateMidnight.Property yearOfEra()
Get the year of era property which provides access to advanced functionality.

Returns:
the year of era property

year

public DateMidnight.Property year()
Get the year property which provides access to advanced functionality.

Returns:
the year property

weekyear

public DateMidnight.Property weekyear()
Get the year of a week based year property which provides access to advanced functionality.

Returns:
the year of a week based year property

monthOfYear

public DateMidnight.Property monthOfYear()
Get the month of year property which provides access to advanced functionality.

Returns:
the month of year property

weekOfWeekyear

public DateMidnight.Property weekOfWeekyear()
Get the week of a week based year property which provides access to advanced functionality.

Returns:
the week of a week based year property

dayOfYear

public DateMidnight.Property dayOfYear()
Get the day of year property which provides access to advanced functionality.

Returns:
the day of year property

dayOfMonth

public DateMidnight.Property dayOfMonth()
Get the day of month property which provides access to advanced functionality.

Returns:
the day of month property

dayOfWeek

public DateMidnight.Property dayOfWeek()
Get the day of week property which provides access to advanced functionality.

Returns:
the day of week property


Copyright © 2002-2012 Joda.org. All Rights Reserved.