Class LocalDateTime
- All Implemented Interfaces:
Serializable
,Comparable<LocalDateTime>
,Calendrical
,CalendricalMatcher
,DateAdjuster
,DateProvider
,DateTimeProvider
,TimeAdjuster
,TimeProvider
2007-12-03T10:15:30
.
LocalDateTime
is an immutable calendrical that represents a date-time, often
viewed as year-month-day-hour-minute-second. This object can also access other
fields such as day-of-year, day-of-week and week-of-year.
This class stores all date and time fields, to a precision of nanoseconds.
It does not store or represent a time-zone. Thus, for example, the value
"2nd October 2007 at 13:45.30.123456789" can be stored in an LocalDateTime
.
LocalDateTime is immutable and thread-safe.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class
Rule implementation. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadjustDate
(LocalDate date) Adjusts a date to have the value of the date part of this object.adjustTime
(LocalTime time) Adjusts a time to have the value of the time part of this object.atOffset
(ZoneOffset offset) Returns an offset date-time formed from this date-time and the specified offset.Returns a zoned date-time formed from this date-time and the specified time-zone.atZone
(TimeZone zone, ZoneResolver resolver) Returns a zoned date-time formed from this date-time and the specified time-zone taking control of what occurs in time-line gaps and overlaps.int
compareTo
(LocalDateTime other) Compares thisLocalDateTime
to another date-time.(package private) static LocalDateTime
create
(long localSeconds, int nanoOfSecond) Obtains an instance ofLocalDateTime
using seconds from the local epoch of 1970-01-01T00:00:00.boolean
Checks if thisLocalDateTime
is equal to the specified date-time.<T> T
get
(CalendricalRule<T> rule) Gets the value of the specified calendrical rule.Gets the chronology that this date-time uses, which is the ISO calendar system.int
Gets the day-of-month field.Gets the day-of-week field, which is an enumDayOfWeek
.int
Gets the day-of-year field.int
Gets the hour-of-day field.int
Gets the minute-of-hour field.Gets the month-of-year field, which is an enumMonthOfYear
.int
Gets the nano-of-second field.int
Gets the second-of-minute field.int
getYear()
Gets the year field.int
hashCode()
A hash code for thisLocalDateTime
.boolean
isAfter
(LocalDateTime other) Checks if thisLocalDateTime
is after the specified date-time.boolean
isBefore
(LocalDateTime other) Checks if thisLocalDateTime
is before the specified date-time.boolean
Checks if the year is a leap year, according to the ISO proleptic calendar system rules.boolean
matches
(CalendricalMatcher matcher) Checks whether thisLocalDateTime
matches the specified matcher.boolean
matchesCalendrical
(Calendrical calendrical) Checks if the date-time extracted from the calendrical matches this.minus
(PeriodProvider periodProvider) Returns a copy of thisLocalDateTime
with the specified period subtracted.Returns a copy of thisLocalDateTime
with the specified duration subtracted.minusDays
(long days) Returns a copy of thisLocalDateTime
with the specified period in days subtracted.minusHours
(long hours) Returns a copy of thisLocalDateTime
with the specified period in hours subtracted.minusMinutes
(long minutes) Returns a copy of thisLocalDateTime
with the specified period in minutes subtracted.minusMonths
(long months) Returns a copy of thisLocalDateTime
with the specified period in months subtracted.minusMonths
(long months, DateResolver dateResolver) Returns a copy of thisLocalDateTime
with the specified period in months subtracted.minusNanos
(long nanos) Returns a copy of thisLocalDateTime
with the specified period in nanoseconds subtracted.minusSeconds
(long seconds) Returns a copy of thisLocalDateTime
with the specified period in seconds subtracted.minusWeeks
(long weeks) Returns a copy of thisLocalDateTime
with the specified period in weeks subtracted.minusYears
(long years) Returns a copy of thisLocalDateTime
with the specified period in years subtracted.minusYears
(long years, DateResolver dateResolver) Returns a copy of thisLocalDateTime
with the specified period in years subtracted.static LocalDateTime
now()
Obtains the current date-time from the system clock in the default time-zone.static LocalDateTime
Obtains the current date-time from the specified clock.static LocalDateTime
of
(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour) Obtains an instance ofLocalDateTime
from year, month, day, hour and minute, setting the second and nanosecond to zero.static LocalDateTime
of
(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute) Obtains an instance ofLocalDateTime
from year, month, day, hour, minute and second, setting the nanosecond to zero.static LocalDateTime
of
(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int nanoOfSecond) Obtains an instance ofLocalDateTime
from year, month, day, hour, minute, second and nanosecond.static LocalDateTime
of
(int year, MonthOfYear monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour) Obtains an instance ofLocalDateTime
from year, month, day, hour and minute, setting the second and nanosecond to zero.static LocalDateTime
of
(int year, MonthOfYear monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute) Obtains an instance ofLocalDateTime
from year, month, day, hour, minute and second, setting the nanosecond to zero.static LocalDateTime
of
(int year, MonthOfYear monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int nanoOfSecond) Obtains an instance ofLocalDateTime
from year, month, day, hour, minute, second and nanosecond.static LocalDateTime
of
(DateProvider dateProvider, TimeProvider timeProvider) Obtains an instance ofLocalDateTime
from a date and time.static LocalDateTime
of
(DateTimeProvider dateTimeProvider) Obtains an instance ofLocalTime
from a date-time provider.static LocalDateTime
ofMidnight
(int year, int monthOfYear, int dayOfMonth) Obtains an instance ofLocalDateTime
from year, month and day with the time set to midnight at the start of day.static LocalDateTime
ofMidnight
(int year, MonthOfYear monthOfYear, int dayOfMonth) Obtains an instance ofLocalDateTime
from year, month and day with the time set to midnight at the start of day.static LocalDateTime
ofMidnight
(DateProvider dateProvider) Obtains an instance ofLocalDateTime
from a date with the time set to midnight at the start of day.static LocalDateTime
Obtains an instance ofLocalDateTime
from a text string such as2007-12-03T10:15:30
.static LocalDateTime
parse
(String text, DateTimeFormatter formatter) Obtains an instance ofLocalDateTime
from a text string using a specific formatter.plus
(PeriodProvider periodProvider) Returns a copy of thisLocalDateTime
with the specified period added.Returns a copy of thisLocalDateTime
with the specified duration added.plusDays
(long days) Returns a copy of thisLocalDateTime
with the specified period in days added.plusHours
(long hours) Returns a copy of thisLocalDateTime
with the specified period in hours added.plusMinutes
(long minutes) Returns a copy of thisLocalDateTime
with the specified period in minutes added.plusMonths
(long months) Returns a copy of thisLocalDateTime
with the specified period in months added.plusMonths
(long months, DateResolver dateResolver) Returns a copy of thisLocalDateTime
with the specified period in months added.plusNanos
(long nanos) Returns a copy of thisLocalDateTime
with the specified period in nanoseconds added.plusSeconds
(long seconds) Returns a copy of thisLocalDateTime
with the specified period in seconds added.plusWeeks
(long weeks) Returns a copy of thisLocalDateTime
with the specified period in weeks added.plusYears
(long years) Returns a copy of thisLocalDateTime
with the specified period in years added.plusYears
(long years, DateResolver dateResolver) Returns a copy of thisLocalDateTime
with the specified period in years added.static CalendricalRule<LocalDateTime>
rule()
Gets the rule forLocalDateTime
.Converts this date-time to aLocalDate
.Converts this date-time to aLocalDateTime
, trivially returningthis
.Converts this date-time to aLocalTime
.toString()
Outputs this date-time as aString
, such as2007-12-03T10:15:30
.toString
(DateTimeFormatter formatter) Outputs this date-time as aString
using the formatter.with
(DateAdjuster adjuster) Returns a copy of thisLocalDateTime
with the date altered using the adjuster.private LocalDateTime
Returns a copy of this date-time with the new date and time, checking to see if a new object is in fact required.with
(MonthOfYear monthOfYear) Returns a copy of thisLocalDateTime
with the month-of-year altered.with
(MonthOfYear monthOfYear, DateResolver dateResolver) Returns a copy of thisLocalDateTime
with the month-of-year altered.with
(TimeAdjuster adjuster) Returns a copy of thisLocalDateTime
with the time altered using the adjuster.withDate
(int year, int monthOfYear, int dayOfMonth) Returns a copy of thisLocalDateTime
with the date values altered.withDate
(int year, MonthOfYear monthOfYear, int dayOfMonth) Returns a copy of thisLocalDateTime
with the date values altered.withDayOfMonth
(int dayOfMonth) Returns a copy of thisLocalDateTime
with the day-of-month altered.withDayOfMonth
(int dayOfMonth, DateResolver dateResolver) Returns a copy of thisLocalDateTime
with the day-of-month altered.withDayOfYear
(int dayOfYear) Returns a copy of thisLocalDateTime
with the day-of-year altered.withHourOfDay
(int hourOfDay) Returns a copy of thisLocalDateTime
with the hour-of-day value altered.withMinuteOfHour
(int minuteOfHour) Returns a copy of thisLocalDateTime
with the minute-of-hour value altered.withMonthOfYear
(int monthOfYear) Returns a copy of thisLocalDateTime
with the month-of-year altered.withMonthOfYear
(int monthOfYear, DateResolver dateResolver) Returns a copy of thisLocalDateTime
with the month-of-year altered.withNanoOfSecond
(int nanoOfSecond) Returns a copy of thisLocalDateTime
with the nano-of-second value altered.withSecondOfMinute
(int secondOfMinute) Returns a copy of thisLocalDateTime
with the second-of-minute value altered.withTime
(int hourOfDay, int minuteOfHour) Returns a copy of thisLocalDateTime
with the time values altered.withTime
(int hourOfDay, int minuteOfHour, int secondOfMinute) Returns a copy of thisLocalDateTime
with the time values altered.withTime
(int hourOfDay, int minuteOfHour, int secondOfMinute, int nanoOfSecond) Returns a copy of thisLocalDateTime
with the time values altered.withYear
(int year) Returns a copy of thisLocalDateTime
with the year altered.withYear
(int year, DateResolver dateResolver) Returns a copy of thisLocalDateTime
with the year altered.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDA serialization identifier for this class.- See Also:
-
date
The date part. -
time
The time part.
-
-
Constructor Details
-
LocalDateTime
Constructor.- Parameters:
date
- the date part of the date-time, not nulltime
- the time part of the date-time, not null
-
-
Method Details
-
now
Obtains the current date-time from the system clock in the default time-zone.This will query the
system clock
in the default time-zone to obtain the current date-time.Using this method will prevent the ability to use an alternate clock for testing because the clock is hard-coded.
- Returns:
- the current date-time using the system clock, never null
-
now
Obtains the current date-time from the specified clock.This will query the specified clock to obtain the current date-time. Using this method allows the use of an alternate clock for testing. The alternate clock may be introduced using
dependency injection
.- Parameters:
clock
- the clock to use, not null- Returns:
- the current date-time, never null
-
create
Obtains an instance ofLocalDateTime
using seconds from the local epoch of 1970-01-01T00:00:00.The nanosecond field is set to zero.
- Parameters:
localSeconds
- the number of seconds from the local epoch of 1970-01-01T00:00:00nanoOfSecond
- the nanosecond within the second, from 0 to 999,999,999- Returns:
- the local date-time, never null
- Throws:
CalendarConversionException
- if the instant exceeds the supported date range
-
ofMidnight
Obtains an instance ofLocalDateTime
from year, month and day with the time set to midnight at the start of day.The day must be valid for the year and month or an exception will be thrown.
The time fields will be set to zero by this factory method.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, not nulldayOfMonth
- the day-of-month to represent, from 1 to 31- Returns:
- the local date-time, never null
- Throws:
IllegalCalendarFieldValueException
- if the value of any field is out of rangeInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
ofMidnight
Obtains an instance ofLocalDateTime
from year, month and day with the time set to midnight at the start of day.The day must be valid for the year and month or an exception will be thrown.
The time fields will be set to zero by this factory method.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, from 1 (January) to 12 (December)dayOfMonth
- the day-of-month to represent, from 1 to 31- Returns:
- the local date-time, never null
- Throws:
IllegalCalendarFieldValueException
- if the value of any field is out of rangeInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
ofMidnight
Obtains an instance ofLocalDateTime
from a date with the time set to midnight at the start of day.The day must be valid for the year and month or an exception will be thrown.
The time fields will be set to zero by this factory method.
- Parameters:
dateProvider
- the date provider to use, not null- Returns:
- the local date-time, never null
-
of
public static LocalDateTime of(int year, MonthOfYear monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour) Obtains an instance ofLocalDateTime
from year, month, day, hour and minute, setting the second and nanosecond to zero.The day must be valid for the year and month or an exception will be thrown.
The second and nanosecond fields will be set to zero by this factory method.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, not nulldayOfMonth
- the day-of-month to represent, from 1 to 31hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59- Returns:
- the local date-time, never null
- Throws:
IllegalCalendarFieldValueException
- if the value of any field is out of rangeInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
of
public static LocalDateTime of(int year, MonthOfYear monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute) Obtains an instance ofLocalDateTime
from year, month, day, hour, minute and second, setting the nanosecond to zero.The day must be valid for the year and month or an exception will be thrown.
The nanosecond field will be set to zero by this factory method.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, not nulldayOfMonth
- the day-of-month to represent, from 1 to 31hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59secondOfMinute
- the second-of-minute to represent, from 0 to 59- Returns:
- the local date-time, never null
- Throws:
IllegalCalendarFieldValueException
- if the value of any field is out of rangeInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
of
public static LocalDateTime of(int year, MonthOfYear monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int nanoOfSecond) Obtains an instance ofLocalDateTime
from year, month, day, hour, minute, second and nanosecond.The day must be valid for the year and month or an exception will be thrown.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, not nulldayOfMonth
- the day-of-month to represent, from 1 to 31hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59secondOfMinute
- the second-of-minute to represent, from 0 to 59nanoOfSecond
- the nano-of-second to represent, from 0 to 999,999,999- Returns:
- the local date-time, never null
- Throws:
IllegalCalendarFieldValueException
- if the value of any field is out of rangeInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
of
public static LocalDateTime of(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour) Obtains an instance ofLocalDateTime
from year, month, day, hour and minute, setting the second and nanosecond to zero.The day must be valid for the year and month or an exception will be thrown.
The second and nanosecond fields will be set to zero by this factory method.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, from 1 (January) to 12 (December)dayOfMonth
- the day-of-month to represent, from 1 to 31hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59- Returns:
- the local date-time, never null
- Throws:
IllegalCalendarFieldValueException
- if the value of any field is out of rangeInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
of
public static LocalDateTime of(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute) Obtains an instance ofLocalDateTime
from year, month, day, hour, minute and second, setting the nanosecond to zero.The day must be valid for the year and month or an exception will be thrown.
The nanosecond field will be set to zero by this factory method.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, from 1 (January) to 12 (December)dayOfMonth
- the day-of-month to represent, from 1 to 31hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59secondOfMinute
- the second-of-minute to represent, from 0 to 59- Returns:
- the local date-time, never null
- Throws:
IllegalCalendarFieldValueException
- if the value of any field is out of rangeInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
of
public static LocalDateTime of(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute, int nanoOfSecond) Obtains an instance ofLocalDateTime
from year, month, day, hour, minute, second and nanosecond.The day must be valid for the year and month or an exception will be thrown.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, from 1 (January) to 12 (December)dayOfMonth
- the day-of-month to represent, from 1 to 31hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59secondOfMinute
- the second-of-minute to represent, from 0 to 59nanoOfSecond
- the nano-of-second to represent, from 0 to 999,999,999- Returns:
- the local date-time, never null
- Throws:
IllegalCalendarFieldValueException
- if the value of any field is out of rangeInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
of
Obtains an instance ofLocalDateTime
from a date and time.- Parameters:
dateProvider
- the date provider to use, not nulltimeProvider
- the time provider to use, not null- Returns:
- the local date-time, never null
-
of
Obtains an instance ofLocalTime
from a date-time provider.The purpose of this method is to convert a
DateTimeProvider
to aLocalDateTime
in the safest possible way. Specifically, the means checking whether the input parameter is null and whether the result of the provider is null.- Parameters:
dateTimeProvider
- the date-time provider to use, not null- Returns:
- the local date-time, never null
-
parse
Obtains an instance ofLocalDateTime
from a text string such as2007-12-03T10:15:30
.The following formats are accepted in ASCII:
{Year}-{MonthOfYear}-{DayOfMonth}T{Hour}:{Minute}
{Year}-{MonthOfYear}-{DayOfMonth}T{Hour}:{Minute}:{Second}
{Year}-{MonthOfYear}-{DayOfMonth}T{Hour}:{Minute}:{Second}.{NanosecondFraction}
The year has between 4 and 10 digits with values from MIN_YEAR to MAX_YEAR. If there are more than 4 digits then the year must be prefixed with the plus symbol. Negative years are allowed, but not negative zero.
The month-of-year has 2 digits with values from 1 to 12.
The day-of-month has 2 digits with values from 1 to 31 appropriate to the month.
The hour has 2 digits with values from 0 to 23. The minute has 2 digits with values from 0 to 59. The second has 2 digits with values from 0 to 59. The nanosecond fraction has from 1 to 9 digits with values from 0 to 999,999,999.
- Parameters:
text
- the text to parse such as '2007-12-03T10:15:30', not null- Returns:
- the parsed local date-time, never null
- Throws:
CalendricalException
- if the text cannot be parsed
-
parse
Obtains an instance ofLocalDateTime
from a text string using a specific formatter.The text is parsed using the formatter, returning a date-time.
- Parameters:
text
- the text to parse, not nullformatter
- the formatter to use, not null- Returns:
- the parsed local date-time, never null
- Throws:
UnsupportedOperationException
- if the formatter cannot parseCalendricalException
- if the text cannot be parsed
-
with
Returns a copy of this date-time with the new date and time, checking to see if a new object is in fact required.- Parameters:
newDate
- the date of the new date-time, not nullnewTime
- the time of the new date-time, not null- Returns:
- the date-time, never null
-
getChronology
Gets the chronology that this date-time uses, which is the ISO calendar system.- Returns:
- the ISO chronology, never null
-
get
Gets the value of the specified calendrical rule.This method queries the value of the specified calendrical rule. If the value cannot be returned for the rule from this date-time then
null
will be returned.- Specified by:
get
in interfaceCalendrical
- Parameters:
rule
- the rule to use, not null- Returns:
- the value for the rule, null if the value cannot be returned
-
getYear
public int getYear()Gets the year field.This method returns the primitive
int
value for the year. Additional information about the year can be obtained by creating aYear
.- Returns:
- the year, from MIN_YEAR to MAX_YEAR
-
getMonthOfYear
Gets the month-of-year field, which is an enumMonthOfYear
.This method returns the enum
MonthOfYear
for the month. This avoids confusion as to whatint
values mean. If you need access to the primitiveint
value then the enum provides theint value
.Additional information can be obtained from the
MonthOfYear
. This includes month lengths, textual names and access to the quarter-of-year and month-of-quarter values.- Returns:
- the month-of-year, never null
-
getDayOfMonth
public int getDayOfMonth()Gets the day-of-month field.This method returns the primitive
int
value for the day-of-month.- Returns:
- the day-of-month, from 1 to 31
-
getDayOfYear
public int getDayOfYear()Gets the day-of-year field.This method returns the primitive
int
value for the day-of-year.- Returns:
- the day-of-year, from 1 to 365, or 366 in a leap year
-
getDayOfWeek
Gets the day-of-week field, which is an enumDayOfWeek
.This method returns the enum
DayOfWeek
for the day-of-week. This avoids confusion as to whatint
values mean. If you need access to the primitiveint
value then the enum provides theint value
.Additional information can be obtained from the
DayOfWeek
. This includes textual names of the values.- Returns:
- the day-of-week, never null
-
getHourOfDay
public int getHourOfDay()Gets the hour-of-day field.- Returns:
- the hour-of-day, from 0 to 23
-
getMinuteOfHour
public int getMinuteOfHour()Gets the minute-of-hour field.- Returns:
- the minute-of-hour, from 0 to 59
-
getSecondOfMinute
public int getSecondOfMinute()Gets the second-of-minute field.- Returns:
- the second-of-minute, from 0 to 59
-
getNanoOfSecond
public int getNanoOfSecond()Gets the nano-of-second field.- Returns:
- the nano-of-second, from 0 to 999,999,999
-
isLeapYear
public boolean isLeapYear()Checks if the year is a leap year, according to the ISO proleptic calendar system rules.This method applies the current rules for leap years across the whole time-line. In general, a year is a leap year if it is divisible by four without remainder. However, years divisible by 100, are not leap years, with the exception of years divisible by 400 which are.
For example, 1904 is a leap year it is divisible by 4. 1900 was not a leap year as it is divisible by 100, however 2000 was a leap year as it is divisible by 400.
The calculation is proleptic - applying the same rules into the far future and far past. This is historically inaccurate, but is correct for the ISO8601 standard.
- Returns:
- true if the year is leap, false otherwise
-
with
Returns a copy of thisLocalDateTime
with the date altered using the adjuster.Adjusters can be used to alter the date in various ways. A simple adjuster might simply set the one of the fields, such as the year field. A more complex adjuster might set the date to the last day of the month.
The time does not affect the calculation and will be the same in the result.
This instance is immutable and unaffected by this method call.
- Parameters:
adjuster
- the adjuster to use, not null- Returns:
- a
LocalDateTime
based on this date-time with the date adjusted, never null - Throws:
NullPointerException
- if the adjuster returned null
-
with
Returns a copy of thisLocalDateTime
with the time altered using the adjuster.Adjusters can be used to alter the time in various ways. A simple adjuster might simply set the one of the fields, such as the hour field. A more complex adjuster might set the time to end of the working day.
The date does not affect the calculation and will be the same in the result.
This instance is immutable and unaffected by this method call.
- Parameters:
adjuster
- the adjuster to use, not null- Returns:
- a
LocalDateTime
based on this date-time with the time adjusted, never null - Throws:
IllegalArgumentException
- if the adjuster returned null
-
withYear
Returns a copy of thisLocalDateTime
with the year altered. If the resultingLocalDateTime
is invalid, it will be resolved usingDateResolvers.previousValid()
. The time does not affect the calculation and will be the same in the result.This method does the same as
withYear(year, DateResolvers.previousValid())
.This instance is immutable and unaffected by this method call.
- Parameters:
year
- the year to set in the returned date, from MIN_YEAR to MAX_YEAR- Returns:
- a
LocalDateTime
based on this date-time with the requested year, never null - Throws:
IllegalCalendarFieldValueException
- if the year value is invalid
-
withYear
Returns a copy of thisLocalDateTime
with the year altered. If the resultingLocalDateTime
is invalid, it will be resolved usingdateResolver
. The time does not affect the calculation and will be the same in the result.This instance is immutable and unaffected by this method call.
- Parameters:
year
- the year to set in the returned date, from MIN_YEAR to MAX_YEARdateResolver
- the DateResolver to be used if the resulting date would be invalid- Returns:
- a
LocalDateTime
based on this date-time with the requested year, never null - Throws:
IllegalCalendarFieldValueException
- if the year value is invalid
-
withMonthOfYear
Returns a copy of thisLocalDateTime
with the month-of-year altered. If the resultingLocalDateTime
is invalid, it will be resolved usingDateResolvers.previousValid()
. The time does not affect the calculation and will be the same in the result.This method does the same as
withMonthOfYear(monthOfYear, DateResolvers.previousValid())
.This instance is immutable and unaffected by this method call.
- Parameters:
monthOfYear
- the month-of-year to set in the returned date, from 1 (January) to 12 (December)- Returns:
- a
LocalDateTime
based on this date-time with the requested month, never null - Throws:
IllegalCalendarFieldValueException
- if the month-of-year value is invalid
-
withMonthOfYear
Returns a copy of thisLocalDateTime
with the month-of-year altered. If the resultingLocalDateTime
is invalid, it will be resolved usingdateResolver
. The time does not affect the calculation and will be the same in the result.This instance is immutable and unaffected by this method call.
- Parameters:
monthOfYear
- the month-of-year to set in the returned date, from 1 (January) to 12 (December)dateResolver
- the DateResolver to be used if the resulting date would be invalid- Returns:
- a
LocalDateTime
based on this date-time with the requested month, never null - Throws:
IllegalCalendarFieldValueException
- if the month-of-year value is invalid
-
with
Returns a copy of thisLocalDateTime
with the month-of-year altered. If the resultingLocalDateTime
is invalid, it will be resolved usingDateResolvers.previousValid()
. The time does not affect the calculation and will be the same in the result.This method does the same as
with(monthOfYear, DateResolvers.previousValid())
.This instance is immutable and unaffected by this method call.
- Parameters:
monthOfYear
- the month-of-year to set in the returned date, not null- Returns:
- a
LocalDateTime
based on this date-time with the requested month, never null
-
with
Returns a copy of thisLocalDateTime
with the month-of-year altered. If the resultingLocalDateTime
is invalid, it will be resolved usingdateResolver
. The time does not affect the calculation and will be the same in the result.This instance is immutable and unaffected by this method call.
- Parameters:
monthOfYear
- the month-of-year to set in the returned date, not nulldateResolver
- the DateResolver to be used if the resulting date would be invalid- Returns:
- a
LocalDateTime
based on this date-time with the requested month, never null
-
withDayOfMonth
Returns a copy of thisLocalDateTime
with the day-of-month altered. If the resultingLocalDateTime
is invalid, an exception is thrown. The time does not affect the calculation and will be the same in the result.This instance is immutable and unaffected by this method call.
- Parameters:
dayOfMonth
- the day-of-month to set in the returned date, from 1 to 28-31- Returns:
- a
LocalDateTime
based on this date-time with the requested day, never null - Throws:
IllegalCalendarFieldValueException
- if the day-of-month value is invalidInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
withDayOfMonth
Returns a copy of thisLocalDateTime
with the day-of-month altered. If the resultingLocalDateTime
is invalid, it will be resolved usingdateResolver
. The time does not affect the calculation and will be the same in the result.This instance is immutable and unaffected by this method call.
- Parameters:
dayOfMonth
- the day-of-month to set in the returned date, from 1 to 31dateResolver
- the DateResolver to be used if the resulting date would be invalid- Returns:
- a
LocalDateTime
based on this date-time with the requested day, never null - Throws:
IllegalCalendarFieldValueException
- if the day-of-month value is invalid
-
withDayOfYear
Returns a copy of thisLocalDateTime
with the day-of-year altered. If the resultingLocalDateTime
is invalid, an exception is thrown.This instance is immutable and unaffected by this method call.
- Parameters:
dayOfYear
- the day-of-year to set in the returned date, from 1 to 365-366- Returns:
- a
LocalDateTime
based on this date with the requested day, never null - Throws:
IllegalCalendarFieldValueException
- if the day-of-year value is invalidInvalidCalendarFieldException
- if the day-of-year is invalid for the year
-
withDate
Returns a copy of thisLocalDateTime
with the date values altered.This method will return a new instance with the same time fields, but altered date fields.
This instance is immutable and unaffected by this method call.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, not nulldayOfMonth
- the day-of-month to represent, from 1 to 31- Returns:
- a
LocalDateTime
based on this date-time with the requested date, never null - Throws:
IllegalCalendarFieldValueException
- if any field value is invalidInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
withDate
Returns a copy of thisLocalDateTime
with the date values altered.This method will return a new instance with the same time fields, but altered date fields.
This instance is immutable and unaffected by this method call.
- Parameters:
year
- the year to represent, from MIN_YEAR to MAX_YEARmonthOfYear
- the month-of-year to represent, from 1 (January) to 12 (December)dayOfMonth
- the day-of-month to represent, from 1 to 31- Returns:
- a
LocalDateTime
based on this date-time with the requested date, never null - Throws:
IllegalCalendarFieldValueException
- if any field value is invalidInvalidCalendarFieldException
- if the day-of-month is invalid for the month-year
-
withHourOfDay
Returns a copy of thisLocalDateTime
with the hour-of-day value altered.This instance is immutable and unaffected by this method call.
- Parameters:
hourOfDay
- the hour-of-day to represent, from 0 to 23- Returns:
- a
LocalDateTime
based on this date-time with the requested hour, never null - Throws:
IllegalCalendarFieldValueException
- if the hour value is invalid
-
withMinuteOfHour
Returns a copy of thisLocalDateTime
with the minute-of-hour value altered.This instance is immutable and unaffected by this method call.
- Parameters:
minuteOfHour
- the minute-of-hour to represent, from 0 to 59- Returns:
- a
LocalDateTime
based on this date-time with the requested minute, never null - Throws:
IllegalCalendarFieldValueException
- if the minute value is invalid
-
withSecondOfMinute
Returns a copy of thisLocalDateTime
with the second-of-minute value altered.This instance is immutable and unaffected by this method call.
- Parameters:
secondOfMinute
- the second-of-minute to represent, from 0 to 59- Returns:
- a
LocalDateTime
based on this date-time with the requested second, never null - Throws:
IllegalCalendarFieldValueException
- if the second value is invalid
-
withNanoOfSecond
Returns a copy of thisLocalDateTime
with the nano-of-second value altered.This instance is immutable and unaffected by this method call.
- Parameters:
nanoOfSecond
- the nano-of-second to represent, from 0 to 999,999,999- Returns:
- a
LocalDateTime
based on this date-time with the requested nanosecond, never null - Throws:
IllegalCalendarFieldValueException
- if the nano value is invalid
-
withTime
Returns a copy of thisLocalDateTime
with the time values altered.This method will return a new instance with the same date fields, but altered time fields. This is a shorthand for
withTime(int,int,int,int)
and sets the second and nanosecond fields to zero.This instance is immutable and unaffected by this method call.
- Parameters:
hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59- Returns:
- a
LocalDateTime
based on this date-time with the requested time, never null - Throws:
IllegalCalendarFieldValueException
- if any field value is invalid
-
withTime
Returns a copy of thisLocalDateTime
with the time values altered.This method will return a new instance with the same date fields, but altered time fields. This is a shorthand for
withTime(int,int,int,int)
and sets the nanosecond fields to zero.This instance is immutable and unaffected by this method call.
- Parameters:
hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59secondOfMinute
- the second-of-minute to represent, from 0 to 59- Returns:
- a
LocalDateTime
based on this date-time with the requested time, never null - Throws:
IllegalCalendarFieldValueException
- if any field value is invalid
-
withTime
public LocalDateTime withTime(int hourOfDay, int minuteOfHour, int secondOfMinute, int nanoOfSecond) Returns a copy of thisLocalDateTime
with the time values altered.This method will return a new instance with the same date fields, but altered time fields.
This instance is immutable and unaffected by this method call.
- Parameters:
hourOfDay
- the hour-of-day to represent, from 0 to 23minuteOfHour
- the minute-of-hour to represent, from 0 to 59secondOfMinute
- the second-of-minute to represent, from 0 to 59nanoOfSecond
- the nano-of-second to represent, from 0 to 999,999,999- Returns:
- a
LocalDateTime
based on this date-time with the requested time, never null - Throws:
IllegalCalendarFieldValueException
- if any field value is invalid
-
plus
Returns a copy of thisLocalDateTime
with the specified period added.This adds the specified period to this date-time, returning a new date-time. Before addition, the period is converted to a
Period
usingPeriod.of(PeriodProvider)
.The detailed rules for the addition effectively treat the date and time parts of this date-time completely separately during the calculation.
The rules are expressed in four steps:
- Add the date part of the period to the date part of this date-time
using
LocalDate.plus(PeriodProvider)
- which has some complex rules - Add the time part of the period to the time part of this date-time using
LocalTime.plusWithOverflow(int, int, int, long)
- Add the overflow days from the time calculation to the calculated date
- Combine the new date and time parts to form the result
The effect of this definition is that time periods are always evenly spaced. For example, adding 5 hours will always result in a date-time one hour later than adding 4 hours. However, another effect of the definition is that adding 24 hour periods is not the same as adding 1 day periods. See the rules of
date addition
to understand why.For example, this table shows what happens when for various inputs and periods:
2010-01-30T00:00 plus P1M2DT-5H = 2010-03-01T19:00 2010-01-30T00:00 plus P1M2D = 2010-03-02T00:00 2010-01-30T00:00 plus P1M2DT4H = 2010-03-02T04:00 2010-01-30T00:00 plus P1M1DT-5H = 2010-02-28T19:00 2010-01-30T00:00 plus P1M1D = 2010-03-01T00:00 2010-01-30T00:00 plus P1M1DT4H = 2010-03-01T04:00 2010-01-30T00:00 plus P1MT-5H = 2010-02-27T19:00 2010-01-30T00:00 plus P1M = 2010-02-28T00:00 2010-01-30T00:00 plus P1MT4H = 2010-02-28T04:00 2010-01-30T00:00 plus P1M-1DT-5H = 2010-02-27T19:00 2010-01-30T00:00 plus P1M-1D = 2010-02-28T00:00 2010-01-30T00:00 plus P1M-1DT4H = 2010-02-28T04:00 2010-01-30T00:00 plus P1M-2DT-5H = 2010-02-27T19:00 2010-01-30T00:00 plus P1M-2D = 2010-02-28T00:00 2010-01-30T00:00 plus P1M-2DT4H = 2010-02-28T04:00 2010-01-30T00:00 plus P1M-3DT-5H = 2010-02-26T19:00 2010-01-30T00:00 plus P1M-3D = 2010-02-27T00:00 2010-01-30T00:00 plus P1M-3DT4H = 2010-02-27T04:00
This instance is immutable and unaffected by this method call.
- Parameters:
periodProvider
- the period to add, not null- Returns:
- a
LocalDateTime
based on this date-time with the period added, never null - Throws:
CalendricalException
- if the specified period cannot be converted to aPeriod
CalendricalException
- if the result exceeds the supported date range
- Add the date part of the period to the date part of this date-time
using
-
plus
Returns a copy of thisLocalDateTime
with the specified duration added.This adds the specified duration to this date-time, returning a new date-time.
The calculation is equivalent to using
plusSeconds(long)
andplusNanos(long)
on the two parts of the duration.This instance is immutable and unaffected by this method call.
- Parameters:
duration
- the duration to add, not null- Returns:
- a
LocalDateTime
based on this date-time with the duration added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
plusYears
Returns a copy of thisLocalDateTime
with the specified period in years added.This method adds the specified amount to the years field in three steps:
- Add the input years to the year field
- Check if the resulting date would be invalid
- Adjust the day-of-month to the last valid day if necessary
For example, 2008-02-29 (leap year) plus one year would result in the invalid date 2009-02-29 (standard year). Instead of returning an invalid result, the last valid day of the month, 2009-02-28, is selected instead.
This method does the same as
plusYears(years, DateResolvers.previousValid())
.This instance is immutable and unaffected by this method call.
- Parameters:
years
- the years to add, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the years added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range- See Also:
-
plusYears
Returns a copy of thisLocalDateTime
with the specified period in years added.This method adds the specified amount to the years field in three steps:
- Add the input years to the year field
- Check if the resulting date would be invalid
- Adjust the date using
dateResolver
if necessary
This instance is immutable and unaffected by this method call.
- Parameters:
years
- the years to add, may be negativedateResolver
- the DateResolver to be used if the resulting date would be invalid- Returns:
- a
LocalDateTime
based on this date-time with the years added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
plusMonths
Returns a copy of thisLocalDateTime
with the specified period in months added.This method adds the specified amount to the months field in three steps:
- Add the input months to the month-of-year field
- Check if the resulting date would be invalid
- Adjust the day-of-month to the last valid day if necessary
For example, 2007-03-31 plus one month would result in the invalid date 2007-04-31. Instead of returning an invalid result, the last valid day of the month, 2007-04-30, is selected instead.
This method does the same as
plusMonths(months, DateResolvers.previousValid())
.This instance is immutable and unaffected by this method call.
- Parameters:
months
- the months to add, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the months added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range- See Also:
-
plusMonths
Returns a copy of thisLocalDateTime
with the specified period in months added.This method adds the specified amount to the months field in three steps:
- Add the input months to the month-of-year field
- Check if the resulting date would be invalid
- Adjust the date using
dateResolver
if necessary
This instance is immutable and unaffected by this method call.
- Parameters:
months
- the months to add, may be negativedateResolver
- the DateResolver to be used if the resulting date would be invalid- Returns:
- a
LocalDateTime
based on this date-time with the months added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
plusWeeks
Returns a copy of thisLocalDateTime
with the specified period in weeks added.This method adds the specified amount in weeks to the days field incrementing the month and year fields as necessary to ensure the result remains valid. The result is only invalid if the maximum/minimum year is exceeded.
For example, 2008-12-31 plus one week would result in the 2009-01-07.
This instance is immutable and unaffected by this method call.
- Parameters:
weeks
- the weeks to add, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the weeks added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
plusDays
Returns a copy of thisLocalDateTime
with the specified period in days added.This method adds the specified amount to the days field incrementing the month and year fields as necessary to ensure the result remains valid. The result is only invalid if the maximum/minimum year is exceeded.
For example, 2008-12-31 plus one day would result in the 2009-01-01.
This instance is immutable and unaffected by this method call.
- Parameters:
days
- the days to add, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the days added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
plusHours
Returns a copy of thisLocalDateTime
with the specified period in hours added.This instance is immutable and unaffected by this method call.
- Parameters:
hours
- the hours to add, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the hours added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
plusMinutes
Returns a copy of thisLocalDateTime
with the specified period in minutes added.This instance is immutable and unaffected by this method call.
- Parameters:
minutes
- the minutes to add, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the minutes added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
plusSeconds
Returns a copy of thisLocalDateTime
with the specified period in seconds added.This instance is immutable and unaffected by this method call.
- Parameters:
seconds
- the seconds to add, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the seconds added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
plusNanos
Returns a copy of thisLocalDateTime
with the specified period in nanoseconds added.This instance is immutable and unaffected by this method call.
- Parameters:
nanos
- the nanos to add, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the nanoseconds added, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minus
Returns a copy of thisLocalDateTime
with the specified period subtracted.This subtracts the specified period from this date-time, returning a new date-time. Before subtraction, the period is converted to a
Period
usingPeriod.of(PeriodProvider)
.The detailed rules for the subtraction effectively treat the date and time parts of this date-time completely separately during the calculation.
The rules are expressed in four steps:
- Subtract the date part of the period from the date part of this date-time
using
LocalDate.minus(PeriodProvider)
- which has some complex rules - Subtract the time part of the period from the time part of this date-time using
LocalTime.minusWithOverflow(int, int, int, long)
- Subtract the overflow days from the time calculation from the calculated date
- Combine the new date and time parts to form the result
The effect of this definition is that time periods are always evenly spaced. For example, subtracting 5 hours will always result in a date-time one hour earlier than adding 4 hours. However, another effect of the definition is that subtracting 24 hour periods is not the same as subtracting 1 day periods. See the rules of
date subtraction
to understand why.For example, this table shows what happens when for various inputs and periods:
2010-03-30T00:00 minus P1M3DT-5H = 2010-02-27T05:00 2010-03-30T00:00 minus P1M3D = 2010-02-27T00:00 2010-03-30T00:00 minus P1M3DT4H = 2010-02-26T20:00 2010-03-30T00:00 minus P1M2DT-5H = 2010-02-28T05:00 2010-03-30T00:00 minus P1M2D = 2010-02-28T00:00 2010-03-30T00:00 minus P1M2DT4H = 2010-02-27T20:00 2010-03-30T00:00 minus P1M1DT-5H = 2010-02-28T05:00 2010-03-30T00:00 minus P1M1D = 2010-02-28T00:00 2010-03-30T00:00 minus P1M1DT4H = 2010-02-27T20:00 2010-03-30T00:00 minus P1MT-5H = 2010-02-28T05:00 2010-03-30T00:00 minus P1M = 2010-02-28T00:00 2010-03-30T00:00 minus P1MT4H = 2010-02-27T20:00 2010-03-30T00:00 minus P1M-1DT-5H = 2010-03-01T05:00 2010-03-30T00:00 minus P1M-1D = 2010-03-01T00:00 2010-03-30T00:00 minus P1M-1DT4H = 2010-02-28T20:00 2010-03-30T00:00 minus P1M-2DT-5H = 2010-03-02T05:00 2010-03-30T00:00 minus P1M-2D = 2010-03-02T00:00 2010-03-30T00:00 minus P1M-2DT4H = 2010-03-01T20:00
This instance is immutable and unaffected by this method call.
- Parameters:
periodProvider
- the period to subtract, not null- Returns:
- a
LocalDateTime
based on this date-time with the period subtracted, never null - Throws:
CalendricalException
- if the specified period cannot be converted to aPeriod
CalendricalException
- if the result exceeds the supported date range
- Subtract the date part of the period from the date part of this date-time
using
-
minus
Returns a copy of thisLocalDateTime
with the specified duration subtracted.This subtracts the specified duration from this date-time, returning a new date-time.
The calculation is equivalent to using
minusSeconds(long)
andminusNanos(long)
on the two parts of the duration.This instance is immutable and unaffected by this method call.
- Parameters:
duration
- the duration to subtract, not null- Returns:
- a
LocalDateTime
based on this date-time with the duration subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minusYears
Returns a copy of thisLocalDateTime
with the specified period in years subtracted.This method subtracts the specified amount from the years field in three steps:
- Subtract the input years to the year field
- Check if the resulting date would be invalid
- Adjust the day-of-month to the last valid day if necessary
For example, 2008-02-29 (leap year) minus one year would result in the invalid date 2009-02-29 (standard year). Instead of returning an invalid result, the last valid day of the month, 2009-02-28, is selected instead.
This method does the same as
minusYears(years, DateResolvers.previousValid())
.This instance is immutable and unaffected by this method call.
- Parameters:
years
- the years to subtract, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the years subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range- See Also:
-
minusYears
Returns a copy of thisLocalDateTime
with the specified period in years subtracted.This method subtracts the specified amount from the years field in three steps:
- Subtract the input years to the year field
- Check if the resulting date would be invalid
- Adjust the date using
dateResolver
if necessary
This instance is immutable and unaffected by this method call.
- Parameters:
years
- the years to subtract, may be negativedateResolver
- the DateResolver to be used if the resulting date would be invalid- Returns:
- a
LocalDateTime
based on this date-time with the years subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minusMonths
Returns a copy of thisLocalDateTime
with the specified period in months subtracted.This method subtracts the specified amount from the months field in three steps:
- Subtract the input months to the month-of-year field
- Check if the resulting date would be invalid
- Adjust the day-of-month to the last valid day if necessary
For example, 2007-03-31 minus one month would result in the invalid date 2007-04-31. Instead of returning an invalid result, the last valid day of the month, 2007-04-30, is selected instead.
This method does the same as
minusMonts(months, DateResolvers.previousValid())
.This instance is immutable and unaffected by this method call.
- Parameters:
months
- the months to subtract, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the months subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range- See Also:
-
minusMonths
Returns a copy of thisLocalDateTime
with the specified period in months subtracted.This method subtracts the specified amount from the months field in three steps:
- Subtract the input months to the month-of-year field
- Check if the resulting date would be invalid
- Adjust the date using
dateResolver
if necessary
This instance is immutable and unaffected by this method call.
- Parameters:
months
- the months to subtract, may be negativedateResolver
- the DateResolver to be used if the resulting date would be invalid- Returns:
- a
LocalDateTime
based on this date-time with the months subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minusWeeks
Returns a copy of thisLocalDateTime
with the specified period in weeks subtracted.This method subtracts the specified amount in weeks from the days field decrementing the month and year fields as necessary to ensure the result remains valid. The result is only invalid if the maximum/minimum year is exceeded.
For example, 2008-12-31 minus one week would result in the 2009-01-07.
This instance is immutable and unaffected by this method call.
- Parameters:
weeks
- the weeks to subtract, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the weeks subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minusDays
Returns a copy of thisLocalDateTime
with the specified period in days subtracted.This method subtracts the specified amount from the days field incrementing the month and year fields as necessary to ensure the result remains valid. The result is only invalid if the maximum/minimum year is exceeded.
For example, 2008-12-31 minus one day would result in the 2009-01-01.
This instance is immutable and unaffected by this method call.
- Parameters:
days
- the days to subtract, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the days subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minusHours
Returns a copy of thisLocalDateTime
with the specified period in hours subtracted.This instance is immutable and unaffected by this method call.
- Parameters:
hours
- the hours to subtract, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the hours subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minusMinutes
Returns a copy of thisLocalDateTime
with the specified period in minutes subtracted.This instance is immutable and unaffected by this method call.
- Parameters:
minutes
- the minutes to subtract, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the minutes subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minusSeconds
Returns a copy of thisLocalDateTime
with the specified period in seconds subtracted.This instance is immutable and unaffected by this method call.
- Parameters:
seconds
- the seconds to subtract, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the seconds subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
minusNanos
Returns a copy of thisLocalDateTime
with the specified period in nanoseconds subtracted.This instance is immutable and unaffected by this method call.
- Parameters:
nanos
- the nanos to subtract, may be negative- Returns:
- a
LocalDateTime
based on this date-time with the nanoseconds subtracted, never null - Throws:
CalendricalException
- if the result exceeds the supported date range
-
matches
Checks whether thisLocalDateTime
matches the specified matcher.Matchers can be used to query the date-time. A simple matcher might simply compare one of the fields, such as the year field. A more complex matcher might check if the date is the last day of the month.
- Parameters:
matcher
- the matcher to use, not null- Returns:
- true if this date-time matches the matcher, false otherwise
-
matchesCalendrical
Checks if the date-time extracted from the calendrical matches this.This method implements the
CalendricalMatcher
interface. It is intended that applications usematches(javax.time.calendar.CalendricalMatcher)
rather than this method.- Specified by:
matchesCalendrical
in interfaceCalendricalMatcher
- Parameters:
calendrical
- the calendrical to match, not null- Returns:
- true if the calendrical matches, false otherwise
-
adjustDate
Adjusts a date to have the value of the date part of this object.This method implements the
DateAdjuster
interface. It is intended that applications usewith(DateAdjuster)
rather than this method.- Specified by:
adjustDate
in interfaceDateAdjuster
- Parameters:
date
- the date to be adjusted, not null- Returns:
- the adjusted date, never null
-
adjustTime
Adjusts a time to have the value of the time part of this object.This method implements the
TimeAdjuster
interface. It is intended that applications usewith(TimeAdjuster)
rather than this method.- Specified by:
adjustTime
in interfaceTimeAdjuster
- Parameters:
time
- the time to be adjusted, not null- Returns:
- the adjusted time, never null
-
atOffset
Returns an offset date-time formed from this date-time and the specified offset.This merges the two objects -
this
and the specified offset - to form an instance ofOffsetDateTime
.This instance is immutable and unaffected by this method call.
- Parameters:
offset
- the offset to use, not null- Returns:
- the offset date-time formed from this date-time and the specified offset, never null
-
atZone
Returns a zoned date-time formed from this date-time and the specified time-zone.Time-zone rules, such as daylight savings, mean that not every time on the local time-line exists. When this method converts the date to a date-time it adjusts the time and offset according to the
ZoneResolvers.postTransition()
rules. This selects the date-time immediately after a gap and the later offset in overlaps.Finer control over gaps and overlaps is available in two ways. If you simply want to use the earlier offset at overlaps then call
ZonedDateTime.withEarlierOffsetAtOverlap()
immediately after this method. Alternately, pass a specific resolver toatZone(TimeZone, ZoneResolver)
.This instance is immutable and unaffected by this method call.
- Parameters:
zone
- the time-zone to use, not null- Returns:
- the zoned date-time formed from this date-time, never null
-
atZone
Returns a zoned date-time formed from this date-time and the specified time-zone taking control of what occurs in time-line gaps and overlaps.Time-zone rules, such as daylight savings, mean that not every time on the local time-line exists. When this method converts the date to a date-time it adjusts the time and offset according to the specified zone resolver.
This instance is immutable and unaffected by this method call.
- Parameters:
zone
- the time-zone to use, not nullresolver
- the zone resolver to use for gaps and overlaps, not null- Returns:
- the zoned date-time formed from this date-time, never null
- Throws:
CalendricalException
- if the date-time cannot be resolved
-
toLocalDate
Converts this date-time to aLocalDate
.- Specified by:
toLocalDate
in interfaceDateProvider
- Returns:
- a LocalDate representing the date fields of this date-time, never null
-
toLocalTime
Converts this date-time to aLocalTime
.- Specified by:
toLocalTime
in interfaceTimeProvider
- Returns:
- a LocalTime representing the time fields of this date-time, never null
-
toLocalDateTime
Converts this date-time to aLocalDateTime
, trivially returningthis
.- Specified by:
toLocalDateTime
in interfaceDateTimeProvider
- Returns:
this
, never null
-
compareTo
Compares thisLocalDateTime
to another date-time.The comparison is based on the time-line position of the date-times.
- Specified by:
compareTo
in interfaceComparable<LocalDateTime>
- Parameters:
other
- the other date-time to compare to, not null- Returns:
- the comparator value, negative if less, positive if greater
-
isAfter
Checks if thisLocalDateTime
is after the specified date-time.The comparison is based on the time-line position of the date-times.
- Parameters:
other
- the other date-time to compare to, not null- Returns:
- true if this is after the specified date-time
-
isBefore
Checks if thisLocalDateTime
is before the specified date-time.The comparison is based on the time-line position of the date-times.
- Parameters:
other
- the other date-time to compare to, not null- Returns:
- true if this is before the specified date-time
-
equals
Checks if thisLocalDateTime
is equal to the specified date-time.The comparison is based on the time-line position of the date-times.
-
hashCode
public int hashCode()A hash code for thisLocalDateTime
. -
toString
Outputs this date-time as aString
, such as2007-12-03T10:15:30
.The output will be one of the following formats:
yyyy-MM-dd'T'HH:mm
yyyy-MM-dd'T'HH:mm:ss
yyyy-MM-dd'T'HH:mm:ssfnnn
yyyy-MM-dd'T'HH:mm:ssfnnnnnn
yyyy-MM-dd'T'HH:mm:ssfnnnnnnnnn
-
toString
Outputs this date-time as aString
using the formatter.- Parameters:
formatter
- the formatter to use, not null- Returns:
- the formatted date-time string, never null
- Throws:
UnsupportedOperationException
- if the formatter cannot printCalendricalPrintException
- if an error occurs during printing
-
rule
Gets the rule forLocalDateTime
.- Returns:
- the rule for the date-time, never null
-