Class LocalDateTime
- All Implemented Interfaces:
Serializable
,Comparable<ReadablePartial>
,ReadablePartial
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:
getHourOfDay()
hourOfDay().get()
- numeric value
- text value
- short text value
- maximum/minimum values
- add/subtract
- set
- rounding
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
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
LocalDateTime.Property binds a LocalDateTime to a DateTimeField allowing powerful datetime functionality to be easily accessed. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs an instance set to the current local time evaluated using ISO chronology in the default zone.LocalDateTime
(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour) Constructs an instance set to the specified date and time usingISOChronology
.LocalDateTime
(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute) Constructs an instance set to the specified date and time usingISOChronology
.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 usingISOChronology
.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.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. -
Method Summary
Modifier and TypeMethodDescriptionGet the century of era property which provides access to advanced functionality.int
compareTo
(ReadablePartial partial) Compares this partial with another returning an integer indicating the order.Get the day of month property which provides access to advanced functionality.Get the day of week property which provides access to advanced functionality.Get the day of year property which provides access to advanced functionality.boolean
Compares this ReadablePartial with another returning true if the chronology, field types and values are equal.era()
Get the era property which provides access to advanced functionality.static LocalDateTime
fromCalendarFields
(Calendar calendar) Constructs a LocalDateTime from ajava.util.Calendar
using exactly the same field values.static LocalDateTime
fromDateFields
(Date date) Constructs a LocalDateTime from ajava.util.Date
using exactly the same field values.int
get
(DateTimeFieldType type) Get the value of one of the fields of a datetime.int
Get the year of era field value.Gets the chronology of the datetime.int
Get the day of month field value.int
Get the day of week field value.int
Get the day of year field value.int
getEra()
Get the era field value.int
Get the hour of day field value.int
Get the millis of day field value.int
Get the millis of second field value.int
Get the minute of hour field value.int
Get the month of year field value.int
Get the second of minute field value.int
getValue
(int index) Gets the value of the field at the specified index.int
Get the week of weekyear field value.int
Get the weekyear field value.int
getYear()
Get the year field value.int
Get the year of century field value.int
Get the year of era field value.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.Get the millis of day property which provides access to advanced functionality.Get the millis of second property which provides access to advanced functionality.minus
(ReadableDuration duration) Returns a copy of this datetime with the specified duration taken away.minus
(ReadablePeriod period) Returns a copy of this datetime with the specified period taken away.minusDays
(int days) Returns a copy of this datetime minus the specified number of days.minusHours
(int hours) Returns a copy of this datetime minus the specified number of hours.minusMillis
(int millis) Returns a copy of this datetime minus the specified number of millis.minusMinutes
(int minutes) Returns a copy of this datetime minus the specified number of minutes.minusMonths
(int months) Returns a copy of this datetime minus the specified number of months.minusSeconds
(int seconds) Returns a copy of this datetime minus the specified number of seconds.minusWeeks
(int weeks) Returns a copy of this datetime minus the specified number of weeks.minusYears
(int years) Returns a copy of this datetime minus the specified number of years.Get the minute of hour field property which provides access to advanced functionality.Get the month of year property which provides access to advanced functionality.static LocalDateTime
now()
Obtains aLocalDateTime
set to the current system millisecond time usingISOChronology
in the default time zone.static LocalDateTime
now
(Chronology chronology) Obtains aLocalDateTime
set to the current system millisecond time using the specified chronology.static LocalDateTime
now
(DateTimeZone zone) Obtains aLocalDateTime
set to the current system millisecond time usingISOChronology
in the specified time zone.static LocalDateTime
Parses aLocalDateTime
from the specified string.static LocalDateTime
parse
(String str, DateTimeFormatter formatter) Parses aLocalDateTime
from the specified string using a formatter.plus
(ReadableDuration duration) Returns a copy of this datetime with the specified duration added.plus
(ReadablePeriod period) Returns a copy of this datetime with the specified period added.plusDays
(int days) Returns a copy of this datetime plus the specified number of days.plusHours
(int hours) Returns a copy of this datetime plus the specified number of hours.plusMillis
(int millis) Returns a copy of this datetime plus the specified number of millis.plusMinutes
(int minutes) Returns a copy of this datetime plus the specified number of minutes.plusMonths
(int months) Returns a copy of this datetime plus the specified number of months.plusSeconds
(int seconds) Returns a copy of this datetime plus the specified number of seconds.plusWeeks
(int weeks) Returns a copy of this datetime plus the specified number of weeks.plusYears
(int years) Returns a copy of this datetime plus the specified number of years.property
(DateTimeFieldType fieldType) Gets the property object for the specified type, which contains many useful methods.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.toDate()
Get the date time as ajava.util.Date
.Get the date time as ajava.util.Date
using the specified time zone.Converts this object to a DateTime using the default zone.toDateTime
(DateTimeZone zone) Converts this object to a DateTime using the specified zone.Converts this object to a LocalDate with the same date and chronology.Converts this object to a LocalTime with the same time and chronology.toString()
Output the date time in ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSS).Output the date using the specified format pattern.Output the date using the specified format pattern.Get the week of a week based year property which provides access to advanced functionality.weekyear()
Get the weekyear property which provides access to advanced functionality.withCenturyOfEra
(int centuryOfEra) Returns a copy of this datetime with the century of era field updated.withDate
(int year, int monthOfYear, int dayOfMonth) Returns a copy of this datetime with the specified date, retaining the time fields.withDayOfMonth
(int dayOfMonth) Returns a copy of this datetime with the day of month field updated.withDayOfWeek
(int dayOfWeek) Returns a copy of this datetime with the day of week field updated.withDayOfYear
(int dayOfYear) Returns a copy of this datetime with the day of year field updated.withDurationAdded
(ReadableDuration durationToAdd, int scalar) Returns a copy of this datetime with the specified duration added.withEra
(int era) Returns a copy of this datetime with the era field updated.withField
(DateTimeFieldType fieldType, int value) Returns a copy of this datetime with the specified field set to a new value.withFieldAdded
(DurationFieldType fieldType, int amount) Returns a copy of this datetime with the value of the specified field increased.withFields
(ReadablePartial partial) Returns a copy of this datetime with the partial set of fields replacing those from this instance.withHourOfDay
(int hour) Returns a copy of this datetime with the hour of day field updated.withMillisOfDay
(int millis) Returns a copy of this datetime with the millis of day field updated.withMillisOfSecond
(int millis) Returns a copy of this datetime with the millis of second field updated.withMinuteOfHour
(int minute) Returns a copy of this datetime with the minute of hour field updated.withMonthOfYear
(int monthOfYear) Returns a copy of this datetime with the month of year field updated.withPeriodAdded
(ReadablePeriod period, int scalar) Returns a copy of this datetime with the specified period added.withSecondOfMinute
(int second) Returns a copy of this datetime with the second of minute field updated.withTime
(int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond) Returns a copy of this datetime with the specified time, retaining the date fields.withWeekOfWeekyear
(int weekOfWeekyear) Returns a copy of this datetime with the week of weekyear field updated.withWeekyear
(int weekyear) Returns a copy of this datetime with the weekyear field updated.withYear
(int year) Returns a copy of this datetime with the year field updated.withYearOfCentury
(int yearOfCentury) Returns a copy of this datetime with the year of century field updated.withYearOfEra
(int yearOfEra) Returns a copy of this datetime with the year of era field updated.year()
Get the year property which provides access to advanced functionality.Get the year of century property which provides access to advanced functionality.Get the year of era property which provides access to advanced functionality.Methods inherited from class org.joda.time.base.AbstractPartial
getField, getFields, getFieldType, getFieldTypes, getValues, hashCode, indexOf, isAfter, isBefore, isEqual, toDateTime, toString
Methods inherited from interface org.joda.time.ReadablePartial
getField, getFieldType, hashCode, toDateTime
-
Constructor Details
-
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.
- See Also:
-
LocalDateTime
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- See Also:
-
LocalDateTime
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- See Also:
-
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
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:00Zzone
- the time zone, null means default zone
-
LocalDateTime
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:00Zchronology
- the chronology, null means ISOChronology in default zone
-
LocalDateTime
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 byISODateTimeFormat.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
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 byISODateTimeFormat.localDateOptionalTimeParser()
. The default String converter ignores the zone and only parses the field values.- Parameters:
instant
- the datetime objectzone
- the time zone- Throws:
IllegalArgumentException
- if the instant is invalid
-
LocalDateTime
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. If the instant contains a chronology, it will be ignored. For example, passing a
LocalDate
and a different chronology will return a date with the year/month/day from the date applied unaltered to the specified chronology.The recognised object types are defined in
ConverterManager
and include ReadablePartial, ReadableInstant, String, Calendar and Date. The String formats are described byISODateTimeFormat.localDateOptionalTimeParser()
. The default String converter ignores the zone and only parses the field values.- Parameters:
instant
- the datetime objectchronology
- 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 usingISOChronology
.- Parameters:
year
- the yearmonthOfYear
- the month of the year, from 1 to 12dayOfMonth
- the day of the month, from 1 to 31hourOfDay
- the hour of the day, from 0 to 23minuteOfHour
- the minute of the hour, from 0 to 59
-
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 usingISOChronology
.- Parameters:
year
- the yearmonthOfYear
- the month of the year, from 1 to 12dayOfMonth
- the day of the month, from 1 to 31hourOfDay
- the hour of the day, from 0 to 23minuteOfHour
- the minute of the hour, from 0 to 59secondOfMinute
- the second of the minute, from 0 to 59
-
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 usingISOChronology
.- Parameters:
year
- the yearmonthOfYear
- the month of the year, from 1 to 12dayOfMonth
- the day of the month, from 1 to 31hourOfDay
- the hour of the day, from 0 to 23minuteOfHour
- the minute of the hour, from 0 to 59secondOfMinute
- the second of the minute, from 0 to 59millisOfSecond
- the millisecond of the second, from 0 to 999
-
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, valid values defined by the chronologymonthOfYear
- the month of the year, valid values defined by the chronologydayOfMonth
- the day of the month, valid values defined by the chronologyhourOfDay
- the hour of the day, valid values defined by the chronologyminuteOfHour
- the minute of the hour, valid values defined by the chronologysecondOfMinute
- the second of the minute, valid values defined by the chronologymillisOfSecond
- the millisecond of the second, valid values defined by the chronologychronology
- the chronology, null means ISOChronology in default zone
-
-
Method Details
-
now
Obtains aLocalDateTime
set to the current system millisecond time usingISOChronology
in the default time zone. The resulting object does not use the zone.- Returns:
- the current date, not null
- Since:
- 2.0
-
now
Obtains aLocalDateTime
set to the current system millisecond time usingISOChronology
in the specified time zone. The resulting object does not use the zone.- Parameters:
zone
- the time zone, not null- Returns:
- the current date, not null
- Since:
- 2.0
-
now
Obtains aLocalDateTime
set to the current system millisecond time using the specified chronology. The resulting object does not use the zone.- Parameters:
chronology
- the chronology, not null- Returns:
- the current date, not null
- Since:
- 2.0
-
parse
Parses aLocalDateTime
from the specified string.- Parameters:
str
- the string to parse, not null- Since:
- 2.0
-
parse
Parses aLocalDateTime
from the specified string using a formatter.- Parameters:
str
- the string to parse, not nullformatter
- the formatter to use, not null- Since:
- 2.0
-
fromCalendarFields
Constructs a LocalDateTime from ajava.util.Calendar
using exactly the same field values.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, ignoring the zone.
One advantage of this method is that this method is unaffected if the version of the time zone data differs between the JDK and Joda-Time. That is because the local field values are transferred, calculated using the JDK time zone data and without using the Joda-Time time zone data.
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, not null- Returns:
- the created local date-time, not null
- Throws:
IllegalArgumentException
- if the calendar is nullIllegalArgumentException
- if the date is invalid for the ISO chronology
-
fromDateFields
Constructs a LocalDateTime from ajava.util.Date
using exactly the same field values.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, ignoring the zone.
One advantage of this method is that this method is unaffected if the version of the time zone data differs between the JDK and Joda-Time. That is because the local field values are transferred, calculated using the JDK time zone data and without using the Joda-Time time zone data.
This factory method always creates a LocalDateTime with ISO chronology.
- Parameters:
date
- the Date to extract fields from, not null- Returns:
- the created local date-time, not null
- Throws:
IllegalArgumentException
- if the calendar is nullIllegalArgumentException
- 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 interfaceReadablePartial
- Returns:
- the field count, four
-
getValue
public int getValue(int index) Gets the value of the field at the specified index.This method is required to support the
ReadablePartial
interface. The supported fields are Year, MonthOfDay, DayOfMonth and MillisOfDay.- Specified by:
getValue
in interfaceReadablePartial
- Parameters:
index
- the index, zero to two- Returns:
- the value
- Throws:
IndexOutOfBoundsException
- if the index is invalid
-
get
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 interfaceReadablePartial
- Overrides:
get
in classAbstractPartial
- 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
Checks if the field type specified is supported by this local datetime and chronology. This can be used to avoid exceptions inget(DateTimeFieldType)
.- Specified by:
isSupported
in interfaceReadablePartial
- Overrides:
isSupported
in classAbstractPartial
- Parameters:
type
- a field type, usually obtained from DateTimeFieldType- Returns:
- true if the field type is supported
-
isSupported
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
Gets the chronology of the datetime.- Specified by:
getChronology
in interfaceReadablePartial
- Returns:
- the Chronology that the datetime is using
-
equals
Compares this ReadablePartial with another returning true if the chronology, field types and values are equal.- Specified by:
equals
in interfaceReadablePartial
- Overrides:
equals
in classAbstractPartial
- Parameters:
partial
- an object to check against- Returns:
- true if fields and values are equal
-
compareTo
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.
- Specified by:
compareTo
in interfaceComparable<ReadablePartial>
- Overrides:
compareTo
in classAbstractPartial
- 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 matchNullPointerException
- if the partial is null
-
toDateTime
Converts this object to a DateTime using the default zone.When the time zone is applied, the local date-time may be affected by daylight saving. In a daylight saving gap, when the local time does not exist, this method will throw an exception. In a daylight saving overlap, when the same local time occurs twice, this method returns the first occurrence of the local time.
- Returns:
this
- Throws:
IllegalInstantException
- if the local time does not exist when the time zone is applied
-
toDateTime
Converts this object to a DateTime using the specified zone.When the time zone is applied, the local date-time may be affected by daylight saving. In a daylight saving gap, when the local time does not exist, this method will throw an exception. In a daylight saving overlap, when the same local time occurs twice, this method returns the first occurrence of the local time.
- Parameters:
zone
- time zone to apply, or default if null- Returns:
- a DateTime using the same millis
- Throws:
IllegalInstantException
- if the local time does not exist when the time zone is applied
-
toLocalDate
Converts this object to a LocalDate with the same date and chronology.- Returns:
- a LocalDate with the same date and chronology
-
toLocalTime
Converts this object to a LocalTime with the same time and chronology.- Returns:
- a LocalTime with the same time and chronology
-
toDate
Get the date time as ajava.util.Date
.The
Date
object created has exactly the same fields as this date-time, except when the time would be invalid due to a daylight savings gap. In that case, the time will be set to the earliest valid time after the gap.In the case of a daylight savings overlap, the earlier instant is selected.
Converting to a JDK Date is full of complications as the JDK Date constructor doesn't behave as you might expect around DST transitions. This method works by taking a first guess and then adjusting. This also handles the situation where the JDK time zone data differs from the Joda-Time time zone data.
- Returns:
- a Date initialised with this date-time, never null
- Since:
- 2.0
-
toDate
Get the date time as ajava.util.Date
using the specified time zone.The
Date
object created has exactly the same fields as this date-time, except when the time would be invalid due to a daylight savings gap. In that case, the time will be set to the earliest valid time after the gap.In the case of a daylight savings overlap, the earlier instant is selected.
Converting to a JDK Date is full of complications as the JDK Date constructor doesn't behave as you might expect around DST transitions. This method works by taking a first guess and then adjusting. This also handles the situation where the JDK time zone data differs from the Joda-Time time zone data.
Unlike
toDate()
, this implementation does not rely on Java's synchronized time zone initialization logic, and should demonstrate better concurrent performance characteristics.- Returns:
- a Date initialised with this date-time, never null
- Since:
- 2.3
-
withDate
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 valuemonthOfYear
- the new monthOfYear valuedayOfMonth
- 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 dayminuteOfHour
- the minute of the hoursecondOfMinute
- the second of the minutemillisOfSecond
- the millisecond of the second- Returns:
- a copy of this datetime with a different time
- Throws:
IllegalArgumentException
- if any value if invalid
-
withFields
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, thenthis
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
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, thenthis
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 nullvalue
- the value to set- Returns:
- a copy of this datetime with the field set
- Throws:
IllegalArgumentException
- if the value is null or invalid
-
withFieldAdded
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 nullamount
- the amount to add- Returns:
- a copy of this datetime with the field updated
- Throws:
IllegalArgumentException
- if the value is null or invalidArithmeticException
- if the result exceeds the internal capacity
-
withDurationAdded
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 zeroscalar
- 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
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)
orplusYears(int)
.- Parameters:
period
- the period to add to this one, null means zeroscalar
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.This field is associated with the "weekyear" via
getWeekyear()
. 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.- 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
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
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 century of era to set- Returns:
- a copy of this object with the field set
- Throws:
IllegalArgumentException
- if the value is invalid
-
withYearOfEra
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
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
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
Returns a copy of this datetime 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.
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
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
Returns a copy of this datetime 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.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
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
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
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
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
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
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
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
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
Get the era property which provides access to advanced functionality.- Returns:
- the era property
-
centuryOfEra
Get the century of era property which provides access to advanced functionality.- Returns:
- the year of era property
-
yearOfCentury
Get the year of century property which provides access to advanced functionality.- Returns:
- the year of era property
-
yearOfEra
Get the year of era property which provides access to advanced functionality.- Returns:
- the year of era property
-
year
Get the year property which provides access to advanced functionality.- Returns:
- the year property
-
weekyear
Get the weekyear property which provides access to advanced functionality.- Returns:
- the weekyear property
-
monthOfYear
Get the month of year property which provides access to advanced functionality.- Returns:
- the month of year 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
Get the day of year property which provides access to advanced functionality.- Returns:
- the day of year property
-
dayOfMonth
Get the day of month property which provides access to advanced functionality.- Returns:
- the day of month property
-
dayOfWeek
Get the day of week property which provides access to advanced functionality.- Returns:
- the day of week property
-
hourOfDay
Get the hour of day field property which provides access to advanced functionality.- Returns:
- the hour of day property
-
minuteOfHour
Get the minute of hour field property which provides access to advanced functionality.- Returns:
- the minute of hour property
-
secondOfMinute
Get the second of minute field property which provides access to advanced functionality.- Returns:
- the second of minute property
-
millisOfSecond
Get the millis of second property which provides access to advanced functionality.- Returns:
- the millis of second property
-
millisOfDay
Get the millis of day property which provides access to advanced functionality.- Returns:
- the millis of day property
-
toString
Output the date time in ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSS).- Specified by:
toString
in interfaceReadablePartial
- Overrides:
toString
in classObject
- Returns:
- ISO8601 time formatted string.
-
toString
Output the date using the specified format pattern.- Parameters:
pattern
- the pattern specification, null means usetoString
- See Also:
-
toString
Output the date using the specified format pattern.- Parameters:
pattern
- the pattern specification, null means usetoString
locale
- Locale to use, null means default- Throws:
IllegalArgumentException
- See Also:
-