org.joda.time
Class LocalDateTime

java.lang.Object
  extended byorg.joda.time.base.AbstractPartial
      extended byorg.joda.time.base.BaseLocal
          extended byorg.joda.time.LocalDateTime
All Implemented Interfaces:
Comparable, ReadablePartial, Serializable

public final class LocalDateTime
extends BaseLocal
implements ReadablePartial, Serializable

LocalDateTime is an unmodifiable datetime class representing a datetime without a time zone.

LocalDateTime implements the ReadablePartial interface. To do this, certain methods focus on key fields Year, MonthOfYear, DayOfYear and MillisOfDay. However, all fields may in fact be queried.

Internally, LocalDateTime uses a single millisecond-based value to represent the local datetime. This value is only used internally and is not exposed to applications.

Calculations on LocalDateTime are performed using a Chronology. This chronology will be set internally to be in the UTC time zone for all calculations.

Each individual field can be queried in two ways:

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

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

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

Nested Class Summary
static class LocalDateTime.Property
          LocalDateTime.Property binds a LocalDateTime to a DateTimeField allowing powerful datetime functionality to be easily accessed.
 
Constructor Summary
LocalDateTime()
          Constructs an instance set to the current local time evaluated using ISO chronology in the default zone.
LocalDateTime(Chronology chronology)
          Constructs an instance set to the current local time evaluated using specified chronology.
LocalDateTime(DateTimeZone zone)
          Constructs an instance set to the current local time evaluated using ISO chronology in the specified zone.
LocalDateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour)
          Constructs an instance set to the specified date and time using ISOChronology.
LocalDateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute)
          Constructs an instance set to the specified date and time using ISOChronology.
LocalDateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
          Constructs an instance set to the specified date and time using ISOChronology.
LocalDateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond, Chronology chronology)
          Constructs an instance set to the specified date and time using the specified chronology, whose zone is ignored.
LocalDateTime(long instant)
          Constructs an instance set to the local time defined by the specified instant evaluated using ISO chronology in the default zone.
LocalDateTime(long instant, Chronology chronology)
          Constructs an instance set to the local time defined by the specified instant evaluated using the specified chronology.
LocalDateTime(long instant, DateTimeZone zone)
          Constructs an instance set to the local time defined by the specified instant evaluated using ISO chronology in the specified zone.
LocalDateTime(Object instant)
          Constructs an instance from an Object that represents a datetime.
LocalDateTime(Object instant, Chronology chronology)
          Constructs an instance from an Object that represents a datetime, using the specified chronology.
LocalDateTime(Object instant, DateTimeZone zone)
          Constructs an instance from an Object that represents a datetime, forcing the time zone to that specified.
 
Method Summary
 LocalDateTime.Property centuryOfEra()
          Get the century of era property which provides access to advanced functionality.
 int compareTo(Object partial)
          Compares this partial with another returning an integer indicating the order.
 LocalDateTime.Property dayOfMonth()
          Get the day of month property which provides access to advanced functionality.
 LocalDateTime.Property dayOfWeek()
          Get the day of week property which provides access to advanced functionality.
 LocalDateTime.Property dayOfYear()
          Get the day of year property which provides access to advanced functionality.
 boolean equals(Object partial)
          Compares this ReadablePartial with another returning true if the chronology, field types and values are equal.
 LocalDateTime.Property era()
          Get the era property which provides access to advanced functionality.
static LocalDateTime fromCalendarFields(Calendar calendar)
          Constructs a LocalDateTime from a java.util.Calendar using exactly the same field values avoiding any time zone effects.
static LocalDateTime fromDateFields(Date date)
          Constructs a LocalDateTime from a java.util.Date using exactly the same field values avoiding any time zone effects.
 int get(DateTimeFieldType type)
          Get the value of one of the fields of a datetime.
 int getCenturyOfEra()
          Get the year of era field value.
 Chronology getChronology()
          Gets the chronology of the datetime.
 int getDayOfMonth()
          Get the day of month field value.
 int getDayOfWeek()
          Get the day of week field value.
 int getDayOfYear()
          Get the day of year field value.
 int getEra()
          Get the era field value.
 int getHourOfDay()
          Get the hour of day field value.
 int getMillisOfDay()
          Get the millis of day field value.
 int getMillisOfSecond()
          Get the millis of second field value.
 int getMinuteOfHour()
          Get the minute of hour field value.
 int getMonthOfYear()
          Get the month of year field value.
 int getSecondOfMinute()
          Get the second of minute field value.
 int getValue(int index)
          Gets the value of the field at the specifed index.
 int getWeekOfWeekyear()
          Get the week of weekyear field value.
 int getWeekyear()
          Get the weekyear field value.
 int getYear()
          Get the year field value.
 int getYearOfCentury()
          Get the year of century field value.
 int getYearOfEra()
          Get the year of era field value.
 LocalDateTime.Property hourOfDay()
          Get the hour of day field property which provides access to advanced functionality.
 boolean isSupported(DateTimeFieldType type)
          Checks if the field type specified is supported by this local datetime and chronology.
 boolean isSupported(DurationFieldType type)
          Checks if the duration type specified is supported by this local datetime and chronology.
 LocalDateTime.Property millisOfDay()
          Get the millis of day property which provides access to advanced functionality.
 LocalDateTime.Property millisOfSecond()
          Get the millis of second property which provides access to advanced functionality.
 LocalDateTime minus(ReadableDuration duration)
          Returns a copy of this datetime with the specified duration taken away.
 LocalDateTime minus(ReadablePeriod period)
          Returns a copy of this datetime with the specified period taken away.
 LocalDateTime minusDays(int days)
          Returns a copy of this datetime minus the specified number of days.
 LocalDateTime minusHours(int hours)
          Returns a copy of this datetime minus the specified number of hours.
 LocalDateTime minusMillis(int millis)
          Returns a copy of this datetime minus the specified number of millis.
 LocalDateTime minusMinutes(int minutes)
          Returns a copy of this datetime minus the specified number of minutes.
 LocalDateTime minusMonths(int months)
          Returns a copy of this datetime minus the specified number of months.
 LocalDateTime minusSeconds(int seconds)
          Returns a copy of this datetime minus the specified number of seconds.
 LocalDateTime minusWeeks(int weeks)
          Returns a copy of this datetime minus the specified number of weeks.
 LocalDateTime minusYears(int years)
          Returns a copy of this datetime minus the specified number of years.
 LocalDateTime.Property minuteOfHour()
          Get the minute of hour field property which provides access to advanced functionality.
 LocalDateTime.Property monthOfYear()
          Get the month of year property which provides access to advanced functionality.
 LocalDateTime plus(ReadableDuration duration)
          Returns a copy of this datetime with the specified duration added.
 LocalDateTime plus(ReadablePeriod period)
          Returns a copy of this datetime with the specified period added.
 LocalDateTime plusDays(int days)
          Returns a copy of this datetime plus the specified number of days.
 LocalDateTime plusHours(int hours)
          Returns a copy of this datetime plus the specified number of hours.
 LocalDateTime plusMillis(int millis)
          Returns a copy of this datetime plus the specified number of millis.
 LocalDateTime plusMinutes(int minutes)
          Returns a copy of this datetime plus the specified number of minutes.
 LocalDateTime plusMonths(int months)
          Returns a copy of this datetime plus the specified number of months.
 LocalDateTime plusSeconds(int seconds)
          Returns a copy of this datetime plus the specified number of seconds.
 LocalDateTime plusWeeks(int weeks)
          Returns a copy of this datetime plus the specified number of weeks.
 LocalDateTime plusYears(int years)
          Returns a copy of this datetime plus the specified number of years.
 LocalDateTime.Property property(DateTimeFieldType fieldType)
          Gets the property object for the specified type, which contains many useful methods.
 LocalDateTime.Property secondOfMinute()
          Get the second of minute field property which provides access to advanced functionality.
 int size()
          Gets the number of fields in this partial, which is four.
 DateTime toDateTime()
          Converts this object to a DateTime using the default zone.
 DateTime toDateTime(DateTimeZone zone)
          Converts this object to a DateTime using the specified zone.
 LocalDate toLocalDate()
          Converts this object to a LocalDate with the same date and chronology.
 LocalTime toLocalTime()
          Converts this object to a LocalTime with the same time and chronology.
 String toString()
          Output the date time in ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSS).
 String toString(String pattern)
          Output the date using the specified format pattern.
 String toString(String pattern, Locale locale)
          Output the date using the specified format pattern.
 LocalDateTime.Property weekOfWeekyear()
          Get the week of a week based year property which provides access to advanced functionality.
 LocalDateTime.Property weekyear()
          Get the weekyear property which provides access to advanced functionality.
 LocalDateTime withCenturyOfEra(int centuryOfEra)
          Returns a copy of this datetime with the century of era field updated.
 LocalDateTime withDate(int year, int monthOfYear, int dayOfMonth)
          Returns a copy of this datetime with the specified date, retaining the time fields.
 LocalDateTime withDayOfMonth(int dayOfMonth)
          Returns a copy of this datetime with the day of month field updated.
 LocalDateTime withDayOfWeek(int dayOfWeek)
          Returns a copy of this datetime with the day of week field updated.
 LocalDateTime withDayOfYear(int dayOfYear)
          Returns a copy of this datetime with the day of year field updated.
 LocalDateTime withDurationAdded(ReadableDuration durationToAdd, int scalar)
          Returns a copy of this datetime with the specified duration added.
 LocalDateTime withEra(int era)
          Returns a copy of this datetime with the era field updated.
 LocalDateTime withField(DateTimeFieldType fieldType, int value)
          Returns a copy of this datetime with the specified field set to a new value.
 LocalDateTime withFieldAdded(DurationFieldType fieldType, int amount)
          Returns a copy of this datetime with the value of the specified field increased.
 LocalDateTime withFields(ReadablePartial partial)
          Returns a copy of this datetime with the partial set of fields replacing those from this instance.
 LocalDateTime withHourOfDay(int hour)
          Returns a copy of this datetime with the hour of day field updated.
 LocalDateTime withMillisOfDay(int millis)
          Returns a copy of this datetime with the millis of day field updated.
 LocalDateTime withMillisOfSecond(int millis)
          Returns a copy of this datetime with the millis of second field updated.
 LocalDateTime withMinuteOfHour(int minute)
          Returns a copy of this datetime with the minute of hour field updated.
 LocalDateTime withMonthOfYear(int monthOfYear)
          Returns a copy of this datetime with the month of year field updated.
 LocalDateTime withPeriodAdded(ReadablePeriod period, int scalar)
          Returns a copy of this datetime with the specified period added.
 LocalDateTime withSecondOfMinute(int second)
          Returns a copy of this datetime with the second of minute field updated.
 LocalDateTime withTime(int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
          Returns a copy of this datetime with the specified time, retaining the date fields.
 LocalDateTime withWeekOfWeekyear(int weekOfWeekyear)
          Returns a copy of this datetime with the week of weekyear field updated.
 LocalDateTime withWeekyear(int weekyear)
          Returns a copy of this datetime with the weekyear field updated.
 LocalDateTime withYear(int year)
          Returns a copy of this datetime with the year field updated.
 LocalDateTime withYearOfCentury(int yearOfCentury)
          Returns a copy of this datetime with the year of century field updated.
 LocalDateTime withYearOfEra(int yearOfEra)
          Returns a copy of this datetime with the year of era field updated.
 LocalDateTime.Property year()
          Get the year property which provides access to advanced functionality.
 LocalDateTime.Property yearOfCentury()
          Get the year of century property which provides access to advanced functionality.
 LocalDateTime.Property yearOfEra()
          Get the year of era property which provides access to advanced functionality.
 
Methods inherited from class org.joda.time.base.AbstractPartial
getField, getFields, getFieldType, getFieldTypes, getValues, hashCode, indexOf, isAfter, isBefore, isEqual, toDateTime, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.joda.time.ReadablePartial
getField, getFieldType, hashCode, toDateTime
 

Constructor Detail

LocalDateTime

public LocalDateTime()
Constructs an instance set to the current local time evaluated using ISO chronology in the default zone.

Once the constructor is completed, the zone is no longer used.


LocalDateTime

public LocalDateTime(DateTimeZone zone)
Constructs an instance set to the current local time evaluated using ISO chronology in the specified zone.

If the specified time zone is null, the default zone is used. Once the constructor is completed, the zone is no longer used.

Parameters:
zone - the time zone, null means default zone

LocalDateTime

public LocalDateTime(Chronology chronology)
Constructs an instance set to the current local time evaluated using specified chronology.

If the chronology is null, ISO chronology in the default time zone is used. Once the constructor is completed, the zone is no longer used.

Parameters:
chronology - the chronology, null means ISOChronology in default zone

LocalDateTime

public LocalDateTime(long instant)
Constructs an instance set to the local time defined by the specified instant evaluated using ISO chronology in the default zone.

Once the constructor is completed, the zone is no longer used.

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

LocalDateTime

public LocalDateTime(long instant,
                     DateTimeZone zone)
Constructs an instance set to the local time defined by the specified instant evaluated using ISO chronology in the specified zone.

If the specified time zone is null, the default zone is used. Once the constructor is completed, the zone is no longer used.

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

LocalDateTime

public LocalDateTime(long instant,
                     Chronology chronology)
Constructs an instance set to the local time defined by the specified instant evaluated using the specified chronology.

If the chronology is null, ISO chronology in the default zone is used. Once the constructor is completed, the zone is no longer used.

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

LocalDateTime

public LocalDateTime(Object instant)
Constructs an instance from an Object that represents a datetime.

If the object contains no chronology, ISOChronology is used. If the object contains no time zone, the default zone is used. Once the constructor is completed, the zone is no longer used.

The recognised object types are defined in ConverterManager and include ReadablePartial, ReadableInstant, String, Calendar and Date. The String formats are described by ISODateTimeFormat.localDateOptionalTimeParser(). The default String converter ignores the zone and only parses the field values.

Parameters:
instant - the datetime object
Throws:
IllegalArgumentException - if the instant is invalid

LocalDateTime

public LocalDateTime(Object instant,
                     DateTimeZone zone)
Constructs an instance from an Object that represents a datetime, forcing the time zone to that specified.

If the object contains no chronology, ISOChronology is used. If the specified time zone is null, the default zone is used. Once the constructor is completed, the zone is no longer used.

The recognised object types are defined in ConverterManager and include ReadablePartial, ReadableInstant, String, Calendar and Date. The String formats are described by ISODateTimeFormat.localDateOptionalTimeParser(). The default String converter ignores the zone and only parses the field values.

Parameters:
instant - the datetime object
zone - the time zone
Throws:
IllegalArgumentException - if the instant is invalid

LocalDateTime

public LocalDateTime(Object instant,
                     Chronology chronology)
Constructs an instance from an Object that represents a datetime, using the specified chronology.

If the chronology is null, ISO in the default time zone is used. Once the constructor is completed, the zone is no longer used.

The recognised object types are defined in ConverterManager and include ReadablePartial, ReadableInstant, String, Calendar and Date. The String formats are described by ISODateTimeFormat.localDateOptionalTimeParser(). The default String converter ignores the zone and only parses the field values.

Parameters:
instant - the datetime object
chronology - the chronology
Throws:
IllegalArgumentException - if the instant is invalid

LocalDateTime

public LocalDateTime(int year,
                     int monthOfYear,
                     int dayOfMonth,
                     int hourOfDay,
                     int minuteOfHour)
Constructs an instance set to the specified date and time using ISOChronology.

Parameters:
year - the year
monthOfYear - the month of the year
dayOfMonth - the day of the month
hourOfDay - the hour of the day
minuteOfHour - the minute of the hour

LocalDateTime

public LocalDateTime(int year,
                     int monthOfYear,
                     int dayOfMonth,
                     int hourOfDay,
                     int minuteOfHour,
                     int secondOfMinute)
Constructs an instance set to the specified date and time using ISOChronology.

Parameters:
year - the year
monthOfYear - the month of the year
dayOfMonth - the day of the month
hourOfDay - the hour of the day
minuteOfHour - the minute of the hour
secondOfMinute - the second of the minute

LocalDateTime

public LocalDateTime(int year,
                     int monthOfYear,
                     int dayOfMonth,
                     int hourOfDay,
                     int minuteOfHour,
                     int secondOfMinute,
                     int millisOfSecond)
Constructs an instance set to the specified date and time using ISOChronology.

Parameters:
year - the year
monthOfYear - the month of the year
dayOfMonth - the day of the month
hourOfDay - the hour of the day
minuteOfHour - the minute of the hour
secondOfMinute - the second of the minute
millisOfSecond - the millisecond of the second

LocalDateTime

public LocalDateTime(int year,
                     int monthOfYear,
                     int dayOfMonth,
                     int hourOfDay,
                     int minuteOfHour,
                     int secondOfMinute,
                     int millisOfSecond,
                     Chronology chronology)
Constructs an instance set to the specified date and time using the specified chronology, whose zone is ignored.

If the chronology is null, ISOChronology is used.

Parameters:
year - the year
monthOfYear - the month of the year
dayOfMonth - the day of the month
hourOfDay - the hour of the day
minuteOfHour - the minute of the hour
secondOfMinute - the second of the minute
millisOfSecond - the millisecond of the second
chronology - the chronology, null means ISOChronology in default zone
Method Detail

fromCalendarFields

public static LocalDateTime fromCalendarFields(Calendar calendar)
Constructs a LocalDateTime from a java.util.Calendar using exactly the same field values avoiding any time zone effects.

Each field is queried from the Calendar and assigned to the LocalDateTime. This is useful if you have been using the Calendar as a local date, ignoing the zone.

This factory method ignores the type of the calendar and always creates a LocalDateTime with ISO chronology. It is expected that you will only pass in instances of GregorianCalendar however this is not validated.

Parameters:
calendar - the Calendar to extract fields from
Returns:
the created LocalDateTime
Throws:
IllegalArgumentException - if the calendar is null
IllegalArgumentException - if the date is invalid for the ISO chronology

fromDateFields

public static LocalDateTime fromDateFields(Date date)
Constructs a LocalDateTime from a java.util.Date using exactly the same field values avoiding any time zone effects.

Each field is queried from the Date and assigned to the LocalDateTime. This is useful if you have been using the Date as a local date, ignoing the zone.

This factory method always creates a LocalDateTime with ISO chronology.

Parameters:
date - the Date to extract fields from
Returns:
the created LocalDateTime
Throws:
IllegalArgumentException - if the calendar is null
IllegalArgumentException - if the date is invalid for the ISO chronology

size

public int size()
Gets the number of fields in this partial, which is four. The supported fields are Year, MonthOfDay, DayOfMonth and MillisOfDay.

Specified by:
size in interface ReadablePartial
Returns:
the field count, four

getValue

public int getValue(int index)
Gets the value of the field at the specifed index.

This method is required to support the ReadablePartial interface. The supported fields are Year, MonthOfDay, DayOfMonth and MillisOfDay.

Specified by:
getValue in interface ReadablePartial
Parameters:
index - the index, zero to two
Returns:
the value
Throws:
IndexOutOfBoundsException - if the index is invalid

get

public int get(DateTimeFieldType type)
Get the value of one of the fields of a datetime.

This method gets the value of the specified field. For example:

 DateTime dt = new DateTime();
 int year = dt.get(DateTimeFieldType.year());
 

Specified by:
get in interface ReadablePartial
Overrides:
get in class AbstractPartial
Parameters:
type - a field type, usually obtained from DateTimeFieldType, not null
Returns:
the value of that field
Throws:
IllegalArgumentException - if the field type is null

isSupported

public boolean isSupported(DateTimeFieldType type)
Checks if the field type specified is supported by this local datetime and chronology. This can be used to avoid exceptions in get(DateTimeFieldType).

Specified by:
isSupported in interface ReadablePartial
Overrides:
isSupported in class AbstractPartial
Parameters:
type - a field type, usually obtained from DateTimeFieldType
Returns:
true if the field type is supported

isSupported

public boolean isSupported(DurationFieldType type)
Checks if the duration type specified is supported by this local datetime and chronology.

Parameters:
type - a duration type, usually obtained from DurationFieldType
Returns:
true if the field type is supported

getChronology

public Chronology getChronology()
Gets the chronology of the datetime.

Specified by:
getChronology in interface ReadablePartial
Returns:
the Chronology that the datetime is using

equals

public boolean equals(Object partial)
Compares this ReadablePartial with another returning true if the chronology, field types and values are equal.

Specified by:
equals in interface ReadablePartial
Overrides:
equals in class AbstractPartial
Parameters:
partial - an object to check against
Returns:
true if fields and values are equal

compareTo

public int compareTo(Object partial)
Compares this partial with another returning an integer indicating the order.

The fields are compared in order, from largest to smallest. The first field that is non-equal is used to determine the result.

The specified object must be a partial instance whose field types match those of this partial.

NOTE: This implementation violates the Comparable contract. This method will accept any instance of ReadablePartial as input. However, it is possible that some implementations of ReadablePartial exist that do not extend AbstractPartial, and thus will throw a ClassCastException if compared in the opposite direction. The cause of this problem is that ReadablePartial doesn't define the compareTo() method, however we can't change that until v2.0.

Specified by:
compareTo in interface Comparable
Overrides:
compareTo in class AbstractPartial
Parameters:
partial - an object to check against
Returns:
negative if this is less, zero if equal, positive if greater
Throws:
ClassCastException - if the partial is the wrong class or if it has field types that don't match
NullPointerException - if the partial is null

toDateTime

public DateTime toDateTime()
Converts this object to a DateTime using the default zone.

This method will throw an exception if the datetime that would be created does not exist when the time zone is taken into account.

Returns:
this

toDateTime

public DateTime toDateTime(DateTimeZone zone)
Converts this object to a DateTime using the specified zone.

This method will throw an exception if the datetime that would be created does not exist when the time zone is taken into account.

Parameters:
zone - time zone to apply, or default if null
Returns:
a DateTime using the same millis

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

toLocalTime

public LocalTime toLocalTime()
Converts this object to a LocalTime with the same time and chronology.

Returns:
a LocalTime with the same time and chronology

withDate

public LocalDateTime withDate(int year,
                              int monthOfYear,
                              int dayOfMonth)
Returns a copy of this datetime with the specified date, retaining the time fields.

If the date is already the date passed in, then this is returned.

To set a single field use the properties, for example:

 DateTime set = dt.monthOfYear().setCopy(6);
 

Parameters:
year - the new year value
monthOfYear - the new monthOfYear value
dayOfMonth - the new dayOfMonth value
Returns:
a copy of this datetime with a different date
Throws:
IllegalArgumentException - if any value if invalid

withTime

public LocalDateTime withTime(int hourOfDay,
                              int minuteOfHour,
                              int secondOfMinute,
                              int millisOfSecond)
Returns a copy of this datetime with the specified time, retaining the date fields.

If the time is already the time passed in, then this is returned.

To set a single field use the properties, for example:

 LocalDateTime set = dt.hourOfDay().setCopy(6);
 

Parameters:
hourOfDay - the hour of the day
minuteOfHour - the minute of the hour
secondOfMinute - the second of the minute
millisOfSecond - the millisecond of the second
Returns:
a copy of this datetime with a different time
Throws:
IllegalArgumentException - if any value if invalid

withFields

public LocalDateTime withFields(ReadablePartial partial)
Returns a copy of this datetime with the partial set of fields replacing those from this instance.

For example, if the partial is a TimeOfDay then the time 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 LocalDateTime withField(DateTimeFieldType fieldType,
                               int value)
Returns a copy of this datetime with the specified field set to a new value.

For example, if the field type is hourOfDay then the hour of day field would be changed in the returned instance. If the field type is null, then this is returned.

These three lines are equivalent:

 LocalDateTime updated = dt.withField(DateTimeFieldType.dayOfMonth(), 6);
 LocalDateTime updated = dt.dayOfMonth().setCopy(6);
 LocalDateTime 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 LocalDateTime withFieldAdded(DurationFieldType fieldType,
                                    int amount)
Returns a copy of this datetime 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:

 LocalDateTime added = dt.withFieldAdded(DurationFieldType.years(), 6);
 LocalDateTime added = dt.plusYears(6);
 LocalDateTime added = dt.plus(Period.years(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 result exceeds the internal capacity

withDurationAdded

public LocalDateTime withDurationAdded(ReadableDuration durationToAdd,
                                       int scalar)
Returns a copy of this datetime 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 result exceeds the internal capacity

withPeriodAdded

public LocalDateTime withPeriodAdded(ReadablePeriod period,
                                     int scalar)
Returns a copy of this datetime 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 result exceeds the internal capacity

plus

public LocalDateTime plus(ReadableDuration duration)
Returns a copy of this datetime 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 result exceeds the internal capacity

plus

public LocalDateTime plus(ReadablePeriod period)
Returns a copy of this datetime 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 period to add to this one, null means zero
Returns:
a copy of this datetime with the period added
Throws:
ArithmeticException - if the result exceeds the internal capacity

plusYears

public LocalDateTime plusYears(int years)
Returns a copy of this datetime plus the specified number of years.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime added = dt.plusYears(6);
 LocalDateTime added = dt.plus(Period.years(6));
 LocalDateTime added = dt.withFieldAdded(DurationFieldType.years(), 6);
 

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

plusMonths

public LocalDateTime plusMonths(int months)
Returns a copy of this datetime plus the specified number of months.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime added = dt.plusMonths(6);
 LocalDateTime added = dt.plus(Period.months(6));
 LocalDateTime added = dt.withFieldAdded(DurationFieldType.months(), 6);
 

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

plusWeeks

public LocalDateTime plusWeeks(int weeks)
Returns a copy of this datetime plus the specified number of weeks.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime added = dt.plusWeeks(6);
 LocalDateTime added = dt.plus(Period.weeks(6));
 LocalDateTime added = dt.withFieldAdded(DurationFieldType.weeks(), 6);
 

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

plusDays

public LocalDateTime plusDays(int days)
Returns a copy of this datetime plus the specified number of days.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime added = dt.plusDays(6);
 LocalDateTime added = dt.plus(Period.days(6));
 LocalDateTime added = dt.withFieldAdded(DurationFieldType.days(), 6);
 

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

plusHours

public LocalDateTime plusHours(int hours)
Returns a copy of this datetime plus the specified number of hours.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime added = dt.plusHours(6);
 LocalDateTime added = dt.plus(Period.hours(6));
 LocalDateTime added = dt.withFieldAdded(DurationFieldType.hours(), 6);
 

Parameters:
hours - the amount of hours to add, may be negative
Returns:
the new LocalDateTime plus the increased hours

plusMinutes

public LocalDateTime plusMinutes(int minutes)
Returns a copy of this datetime plus the specified number of minutes.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime added = dt.plusMinutes(6);
 LocalDateTime added = dt.plus(Period.minutes(6));
 LocalDateTime added = dt.withFieldAdded(DurationFieldType.minutes(), 6);
 

Parameters:
minutes - the amount of minutes to add, may be negative
Returns:
the new LocalDateTime plus the increased minutes

plusSeconds

public LocalDateTime plusSeconds(int seconds)
Returns a copy of this datetime plus the specified number of seconds.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime added = dt.plusSeconds(6);
 LocalDateTime added = dt.plus(Period.seconds(6));
 LocalDateTime added = dt.withFieldAdded(DurationFieldType.seconds(), 6);
 

Parameters:
seconds - the amount of seconds to add, may be negative
Returns:
the new LocalDateTime plus the increased seconds

plusMillis

public LocalDateTime plusMillis(int millis)
Returns a copy of this datetime plus the specified number of millis.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime added = dt.plusMillis(6);
 LocalDateTime added = dt.plus(Period.millis(6));
 LocalDateTime added = dt.withFieldAdded(DurationFieldType.millis(), 6);
 

Parameters:
millis - the amount of millis to add, may be negative
Returns:
the new LocalDateTime plus the increased millis

minus

public LocalDateTime minus(ReadableDuration duration)
Returns a copy of this datetime 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 result exceeds the internal capacity

minus

public LocalDateTime minus(ReadablePeriod period)
Returns a copy of this datetime 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 result exceeds the internal capacity

minusYears

public LocalDateTime minusYears(int years)
Returns a copy of this datetime minus the specified number of years.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime subtracted = dt.minusYears(6);
 LocalDateTime subtracted = dt.minus(Period.years(6));
 LocalDateTime subtracted = dt.withFieldAdded(DurationFieldType.years(), -6);
 

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

minusMonths

public LocalDateTime minusMonths(int months)
Returns a copy of this datetime minus the specified number of months.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime subtracted = dt.minusMonths(6);
 LocalDateTime subtracted = dt.minus(Period.months(6));
 LocalDateTime subtracted = dt.withFieldAdded(DurationFieldType.months(), -6);
 

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

minusWeeks

public LocalDateTime minusWeeks(int weeks)
Returns a copy of this datetime minus the specified number of weeks.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime subtracted = dt.minusWeeks(6);
 LocalDateTime subtracted = dt.minus(Period.weeks(6));
 LocalDateTime subtracted = dt.withFieldAdded(DurationFieldType.weeks(), -6);
 

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

minusDays

public LocalDateTime minusDays(int days)
Returns a copy of this datetime minus the specified number of days.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime subtracted = dt.minusDays(6);
 LocalDateTime subtracted = dt.minus(Period.days(6));
 LocalDateTime subtracted = dt.withFieldAdded(DurationFieldType.days(), -6);
 

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

minusHours

public LocalDateTime minusHours(int hours)
Returns a copy of this datetime minus the specified number of hours.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime subtracted = dt.minusHours(6);
 LocalDateTime subtracted = dt.minus(Period.hours(6));
 LocalDateTime subtracted = dt.withFieldAdded(DurationFieldType.hours(), -6);
 

Parameters:
hours - the amount of hours to subtract, may be negative
Returns:
the new LocalDateTime minus the increased hours

minusMinutes

public LocalDateTime minusMinutes(int minutes)
Returns a copy of this datetime minus the specified number of minutes.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime subtracted = dt.minusMinutes(6);
 LocalDateTime subtracted = dt.minus(Period.minutes(6));
 LocalDateTime subtracted = dt.withFieldAdded(DurationFieldType.minutes(), -6);
 

Parameters:
minutes - the amount of minutes to subtract, may be negative
Returns:
the new LocalDateTime minus the increased minutes

minusSeconds

public LocalDateTime minusSeconds(int seconds)
Returns a copy of this datetime minus the specified number of seconds.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime subtracted = dt.minusSeconds(6);
 LocalDateTime subtracted = dt.minus(Period.seconds(6));
 LocalDateTime subtracted = dt.withFieldAdded(DurationFieldType.seconds(), -6);
 

Parameters:
seconds - the amount of seconds to subtract, may be negative
Returns:
the new LocalDateTime minus the increased seconds

minusMillis

public LocalDateTime minusMillis(int millis)
Returns a copy of this datetime minus the specified number of millis.

This LocalDateTime instance is immutable and unaffected by this method call.

The following three lines are identical in effect:

 LocalDateTime subtracted = dt.minusMillis(6);
 LocalDateTime subtracted = dt.minus(Period.millis(6));
 LocalDateTime subtracted = dt.withFieldAdded(DurationFieldType.millis(), -6);
 

Parameters:
millis - the amount of millis to subtract, may be negative
Returns:
the new LocalDateTime minus the increased millis

property

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

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

getEra

public int getEra()
Get the era field value.

Returns:
the era

getCenturyOfEra

public int getCenturyOfEra()
Get the year of era field value.

Returns:
the year of era

getYearOfEra

public int getYearOfEra()
Get the year of era field value.

Returns:
the year of era

getYearOfCentury

public int getYearOfCentury()
Get the year of century field value.

Returns:
the year of century

getYear

public int getYear()
Get the year field value.

Returns:
the year

getWeekyear

public int getWeekyear()
Get the weekyear field value.

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.

Returns:
the weekyear

getMonthOfYear

public int getMonthOfYear()
Get the month of year field value.

Returns:
the month of year

getWeekOfWeekyear

public int getWeekOfWeekyear()
Get the week of weekyear field value.

Returns:
the week of a week based year

getDayOfYear

public int getDayOfYear()
Get the day of year field value.

Returns:
the day of year

getDayOfMonth

public int getDayOfMonth()
Get the day of month field value.

The values for the day of month are defined in DateTimeConstants.

Returns:
the day of month

getDayOfWeek

public int getDayOfWeek()
Get the day of week field value.

The values for the day of week are defined in DateTimeConstants.

Returns:
the day of week

getHourOfDay

public int getHourOfDay()
Get the hour of day field value.

Returns:
the hour of day

getMinuteOfHour

public int getMinuteOfHour()
Get the minute of hour field value.

Returns:
the minute of hour

getSecondOfMinute

public int getSecondOfMinute()
Get the second of minute field value.

Returns:
the second of minute

getMillisOfSecond

public int getMillisOfSecond()
Get the millis of second field value.

Returns:
the millis of second

getMillisOfDay

public int getMillisOfDay()
Get the millis of day field value.

Returns:
the millis of day

withEra

public LocalDateTime withEra(int era)
Returns a copy of this datetime with the era field updated.

LocalDateTime 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

withCenturyOfEra

public LocalDateTime withCenturyOfEra(int centuryOfEra)
Returns a copy of this datetime with the century of era field updated.

LocalDateTime 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

withYearOfEra

public LocalDateTime withYearOfEra(int yearOfEra)
Returns a copy of this datetime with the year of era field updated.

LocalDateTime 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

withYearOfCentury

public LocalDateTime withYearOfCentury(int yearOfCentury)
Returns a copy of this datetime with the year of century field updated.

LocalDateTime 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

withYear

public LocalDateTime withYear(int year)
Returns a copy of this datetime with the year field updated.

LocalDateTime 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

withWeekyear

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

LocalDateTime 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

withMonthOfYear

public LocalDateTime withMonthOfYear(int monthOfYear)
Returns a copy of this datetime with the month of year field updated.

LocalDateTime 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

withWeekOfWeekyear

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

LocalDateTime 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

withDayOfYear

public LocalDateTime withDayOfYear(int dayOfYear)
Returns a copy of this datetime with the day of year field updated.

LocalDateTime 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

withDayOfMonth

public LocalDateTime withDayOfMonth(int dayOfMonth)
Returns a copy of this datetime with the day of month field updated.

LocalDateTime 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

withDayOfWeek

public LocalDateTime withDayOfWeek(int dayOfWeek)
Returns a copy of this datetime with the day of week field updated.

LocalDateTime 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

withHourOfDay

public LocalDateTime withHourOfDay(int hour)
Returns a copy of this datetime with the hour of day field updated.

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

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

withMinuteOfHour

public LocalDateTime withMinuteOfHour(int minute)
Returns a copy of this datetime with the minute of hour field updated.

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

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

withSecondOfMinute

public LocalDateTime withSecondOfMinute(int second)
Returns a copy of this datetime with the second of minute field updated.

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

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

withMillisOfSecond

public LocalDateTime withMillisOfSecond(int millis)
Returns a copy of this datetime with the millis of second field updated.

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

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

withMillisOfDay

public LocalDateTime withMillisOfDay(int millis)
Returns a copy of this datetime with the millis of day field updated.

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

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

era

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

Returns:
the era property

centuryOfEra

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

Returns:
the year of era property

yearOfCentury

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

Returns:
the year of era property

yearOfEra

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

Returns:
the year of era property

year

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

Returns:
the year property

weekyear

public LocalDateTime.Property weekyear()
Get the weekyear property which provides access to advanced functionality.

Returns:
the weekyear property

monthOfYear

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

Returns:
the month of year property

weekOfWeekyear

public LocalDateTime.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 LocalDateTime.Property dayOfYear()
Get the day of year property which provides access to advanced functionality.

Returns:
the day of year property

dayOfMonth

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

Returns:
the day of month property

dayOfWeek

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

Returns:
the day of week property

hourOfDay

public LocalDateTime.Property hourOfDay()
Get the hour of day field property which provides access to advanced functionality.

Returns:
the hour of day property

minuteOfHour

public LocalDateTime.Property minuteOfHour()
Get the minute of hour field property which provides access to advanced functionality.

Returns:
the minute of hour property

secondOfMinute

public LocalDateTime.Property secondOfMinute()
Get the second of minute field property which provides access to advanced functionality.

Returns:
the second of minute property

millisOfSecond

public LocalDateTime.Property millisOfSecond()
Get the millis of second property which provides access to advanced functionality.

Returns:
the millis of second property

millisOfDay

public LocalDateTime.Property millisOfDay()
Get the millis of day property which provides access to advanced functionality.

Returns:
the millis of day property

toString

public String toString()
Output the date time in ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSS).

Specified by:
toString in interface ReadablePartial
Returns:
ISO8601 time formatted string.

toString

public String toString(String pattern)
Output the date using the specified format pattern.

Parameters:
pattern - the pattern specification, null means use toString
See Also:
DateTimeFormat

toString

public String toString(String pattern,
                       Locale locale)
                throws IllegalArgumentException
Output the date using the specified format pattern.

Parameters:
pattern - the pattern specification, null means use toString
locale - Locale to use, null means default
Throws:
IllegalArgumentException
See Also:
DateTimeFormat


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