Top Description Fields Constructors Methods
java.time

public final Class LocalDateTime

extends Object
implements Temporal, TemporalAdjuster, ChronoLocalDateTime<LocalDate>, Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable, java.time.chrono.ChronoLocalDateTime, java.lang.Comparable, java.time.temporal.TemporalAdjuster, java.time.temporal.Temporal, java.time.temporal.TemporalAccessor
Annotations
@ValueBased
Static Imports
java.time.LocalTime.HOURS_PER_DAY, .LocalTime.MICROS_PER_DAY, .LocalTime.MILLIS_PER_DAY, .LocalTime.MINUTES_PER_DAY, .LocalTime.NANOS_PER_DAY, .LocalTime.NANOS_PER_HOUR, .LocalTime.NANOS_PER_MINUTE, .LocalTime.NANOS_PER_SECOND, .LocalTime.SECONDS_PER_DAY, java.time.temporal.ChronoField.NANO_OF_SECOND

A date-time without a time-zone in the ISO-8601 calendar system, such as 2007-12-03T10:15:30.

LocalDateTime is an immutable date-time object that represents a date-time, often viewed as year-month-day-hour-minute-second. Other date and time fields, such as day-of-year, day-of-week and week-of-year, can also be accessed. Time is represented to nanosecond precision. For example, the value "2nd October 2007 at 13:45.30.123456789" can be stored in a LocalDateTime.

This class does not store or represent a time-zone. Instead, it is a description of the date, as used for birthdays, combined with the local time as seen on a wall clock. It cannot represent an instant on the time-line without additional information such as an offset or time-zone.

The ISO-8601 calendar system is the modern civil calendar system used today in most of the world. It is equivalent to the proleptic Gregorian calendar system, in which today's rules for leap years are applied for all time. For most applications written today, the ISO-8601 rules are entirely suitable. However, any application that makes use of historical dates, and requires them to be accurate will find the ISO-8601 approach unsuitable.

This is a value-based class; programmers should treat instances that are equal as interchangeable and should not use instances for synchronization, or unpredictable behavior may occur. For example, in a future release, synchronization may fail. The equals method should be used for comparisons.

Implementation Specification

This class is immutable and thread-safe.

Since
1.8

Field Summary

Modifier and TypeField and Description
private final LocalDate
date

The date part.

public static final LocalDateTime
MAX

The maximum supported LocalDateTime, '+999999999-12-31T23:59:59.999999999'.

public static final LocalDateTime
MIN

The minimum supported LocalDateTime, '-999999999-01-01T00:00:00'.

private static final long
serialVersionUID

Serialization version.

private final LocalTime
time

The time part.

Constructor Summary

AccessConstructor and Description
private
LocalDateTime(LocalDate
the date part of the date-time, validated not null
date
,
LocalTime
the time part of the date-time, validated not null
time
)

Constructor.

Method Summary

Modifier and TypeMethod and Description
public Temporal

Returns:

the adjusted object, not null
adjustInto
(Temporal
the target object to be adjusted, not null
temporal
)

Overrides default java.time.chrono.ChronoLocalDateTime.adjustInto.

Implements java.time.temporal.TemporalAdjuster.adjustInto.

Adjusts the specified temporal object to have the same date and time as this object.
public OffsetDateTime

Returns:

the offset date-time formed from this date-time and the specified offset, not null
atOffset
(ZoneOffset
the offset to combine with, not null
offset
)

Combines this date-time with an offset to create an OffsetDateTime.

public ZonedDateTime

Returns:

the zoned date-time formed from this date-time, not null
atZone
(ZoneId
the time-zone to use, not null
zone
)

Implements java.time.chrono.ChronoLocalDateTime.atZone.

Combines this date-time with a time-zone to create a ZonedDateTime.
public int

Returns:

the comparator value, that is the comparison of this local date-time with the other local date-time and this chronology with the other chronology, in order, returning the first non-zero result, and otherwise returning zero
compareTo
(ChronoLocalDateTime<?>
the other date-time to compare to, not null
other
)

Overrides default java.time.chrono.ChronoLocalDateTime.compareTo.

Compares this date-time to another date-time.
private int
public boolean

Returns:

true if this is equal to the other date-time
equals
(Object
the object to check, null returns false
obj
)

Overrides java.lang.Object.equals.

Implements java.time.chrono.ChronoLocalDateTime.equals.

Checks if this date-time is equal to another date-time.
public String

Returns:

the formatted date-time string, not null
format
(DateTimeFormatter
the formatter to use, not null
formatter
)

Overrides default java.time.chrono.ChronoLocalDateTime.format.

Formats this date-time using the specified formatter.
public static LocalDateTime

Returns:

the local date-time, not null
from
(TemporalAccessor
the temporal object to convert, not null
temporal
)

Hides java.time.chrono.ChronoLocalDateTime.from.

Obtains an instance of LocalDateTime from a temporal object.
public int

Returns:

the value for the field
get
(TemporalField
the field to get, not null
field
)

Overrides default java.time.temporal.TemporalAccessor.get.

Gets the value of the specified field from this date-time as an int.
public int

Returns:

the day-of-month, from 1 to 31
getDayOfMonth
()

Gets the day-of-month field.

public DayOfWeek

Returns:

the day-of-week, not null
getDayOfWeek
()

Gets the day-of-week field, which is an enum DayOfWeek.

public int

Returns:

the day-of-year, from 1 to 365, or 366 in a leap year
getDayOfYear
()

Gets the day-of-year field.

public int

Returns:

the hour-of-day, from 0 to 23
getHour
()

Gets the hour-of-day field.

public long

Returns:

the value for the field
getLong
(TemporalField
the field to get, not null
field
)

Implements java.time.temporal.TemporalAccessor.getLong.

Gets the value of the specified field from this date-time as a long.
public int

Returns:

the minute-of-hour, from 0 to 59
getMinute
()

Gets the minute-of-hour field.

public Month

Returns:

the month-of-year, not null
getMonth
()

Gets the month-of-year field using the Month enum.

public int

Returns:

the month-of-year, from 1 to 12
getMonthValue
()

Gets the month-of-year field from 1 to 12.

public int

Returns:

the nano-of-second, from 0 to 999,999,999
getNano
()

Gets the nano-of-second field.

public int

Returns:

the second-of-minute, from 0 to 59
getSecond
()

Gets the second-of-minute field.

public int

Returns:

the year, from MIN_YEAR to MAX_YEAR
getYear
()

Gets the year field.

public int

Returns:

a suitable hash code
hashCode
()

Overrides java.lang.Object.hashCode.

Implements java.time.chrono.ChronoLocalDateTime.hashCode.

A hash code for this date-time.
public boolean

Returns:

true if this date-time is after the specified date-time
isAfter
(ChronoLocalDateTime<?>
the other date-time to compare to, not null
other
)

Overrides default java.time.chrono.ChronoLocalDateTime.isAfter.

Checks if this date-time is after the specified date-time.
public boolean

Returns:

true if this date-time is before the specified date-time
isBefore
(ChronoLocalDateTime<?>
the other date-time to compare to, not null
other
)

Overrides default java.time.chrono.ChronoLocalDateTime.isBefore.

Checks if this date-time is before the specified date-time.
public boolean

Returns:

true if this date-time is equal to the specified date-time
isEqual
(ChronoLocalDateTime<?>
the other date-time to compare to, not null
other
)

Overrides default java.time.chrono.ChronoLocalDateTime.isEqual.

Checks if this date-time is equal to the specified date-time.
public boolean

Returns:

true if the field is supported on this date-time, false if not
isSupported
(TemporalField
the field to check, null returns false
field
)

Implements java.time.temporal.TemporalAccessor.isSupported, java.time.chrono.ChronoLocalDateTime.isSupported.

Checks if the specified field is supported.
public boolean

Returns:

true if the unit can be added/subtracted, false if not
isSupported
(TemporalUnit
the unit to check, null returns false
unit
)

Overrides default java.time.chrono.ChronoLocalDateTime.isSupported.

Implements java.time.temporal.Temporal.isSupported.

Checks if the specified unit is supported.
public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the subtraction made, not null
minus
(TemporalAmount
the amount to subtract, not null
amountToSubtract
)

Overrides default java.time.temporal.Temporal.minus, java.time.chrono.ChronoLocalDateTime.minus.

Returns a copy of this date-time with the specified amount subtracted.
public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the specified amount subtracted, not null
minus
(long
the amount of the unit to subtract from the result, may be negative
amountToSubtract
,
TemporalUnit
the unit of the amount to subtract, not null
unit
)

Overrides default java.time.temporal.Temporal.minus, java.time.chrono.ChronoLocalDateTime.minus.

Returns a copy of this date-time with the specified amount subtracted.
public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the days subtracted, not null
minusDays
(long
the days to subtract, may be negative
days
)

Returns a copy of this LocalDateTime with the specified number of days subtracted.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the hours subtracted, not null
minusHours
(long
the hours to subtract, may be negative
hours
)

Returns a copy of this LocalDateTime with the specified number of hours subtracted.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the minutes subtracted, not null
minusMinutes
(long
the minutes to subtract, may be negative
minutes
)

Returns a copy of this LocalDateTime with the specified number of minutes subtracted.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the months subtracted, not null
minusMonths
(long
the months to subtract, may be negative
months
)

Returns a copy of this LocalDateTime with the specified number of months subtracted.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the nanoseconds subtracted, not null
minusNanos
(long
the nanos to subtract, may be negative
nanos
)

Returns a copy of this LocalDateTime with the specified number of nanoseconds subtracted.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the seconds subtracted, not null
minusSeconds
(long
the seconds to subtract, may be negative
seconds
)

Returns a copy of this LocalDateTime with the specified number of seconds subtracted.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the weeks subtracted, not null
minusWeeks
(long
the weeks to subtract, may be negative
weeks
)

Returns a copy of this LocalDateTime with the specified number of weeks subtracted.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the years subtracted, not null
minusYears
(long
the years to subtract, may be negative
years
)

Returns a copy of this LocalDateTime with the specified number of years subtracted.

public static LocalDateTime

Returns:

the current date-time using the system clock and default time-zone, not null
now
()

Obtains the current date-time from the system clock in the default time-zone.

public static LocalDateTime

Returns:

the current date-time using the system clock, not null
now
(ZoneId
the zone ID to use, not null
zone
)

Obtains the current date-time from the system clock in the specified time-zone.

public static LocalDateTime

Returns:

the current date-time, not null
now
(Clock
the clock to use, not null
clock
)

Obtains the current date-time from the specified clock.

public static LocalDateTime

Returns:

the local date-time, not null
of
(int
the year to represent, from MIN_YEAR to MAX_YEAR
year
,
Month
the month-of-year to represent, not null
month
,
int
the day-of-month to represent, from 1 to 31
dayOfMonth
,
int
the hour-of-day to represent, from 0 to 23
hour
,
int
the minute-of-hour to represent, from 0 to 59
minute
)

Obtains an instance of LocalDateTime from year, month, day, hour and minute, setting the second and nanosecond to zero.

public static LocalDateTime

Returns:

the local date-time, not null
of
(int
the year to represent, from MIN_YEAR to MAX_YEAR
year
,
Month
the month-of-year to represent, not null
month
,
int
the day-of-month to represent, from 1 to 31
dayOfMonth
,
int
the hour-of-day to represent, from 0 to 23
hour
,
int
the minute-of-hour to represent, from 0 to 59
minute
,
int
the second-of-minute to represent, from 0 to 59
second
)

Obtains an instance of LocalDateTime from year, month, day, hour, minute and second, setting the nanosecond to zero.

public static LocalDateTime

Returns:

the local date-time, not null
of
(int
the year to represent, from MIN_YEAR to MAX_YEAR
year
,
Month
the month-of-year to represent, not null
month
,
int
the day-of-month to represent, from 1 to 31
dayOfMonth
,
int
the hour-of-day to represent, from 0 to 23
hour
,
int
the minute-of-hour to represent, from 0 to 59
minute
,
int
the second-of-minute to represent, from 0 to 59
second
,
int
the nano-of-second to represent, from 0 to 999,999,999
nanoOfSecond
)

Obtains an instance of LocalDateTime from year, month, day, hour, minute, second and nanosecond.

public static LocalDateTime

Returns:

the local date-time, not null
of
(int
the year to represent, from MIN_YEAR to MAX_YEAR
year
,
int
the month-of-year to represent, from 1 (January) to 12 (December)
month
,
int
the day-of-month to represent, from 1 to 31
dayOfMonth
,
int
the hour-of-day to represent, from 0 to 23
hour
,
int
the minute-of-hour to represent, from 0 to 59
minute
)

Obtains an instance of LocalDateTime from year, month, day, hour and minute, setting the second and nanosecond to zero.

public static LocalDateTime

Returns:

the local date-time, not null
of
(int
the year to represent, from MIN_YEAR to MAX_YEAR
year
,
int
the month-of-year to represent, from 1 (January) to 12 (December)
month
,
int
the day-of-month to represent, from 1 to 31
dayOfMonth
,
int
the hour-of-day to represent, from 0 to 23
hour
,
int
the minute-of-hour to represent, from 0 to 59
minute
,
int
the second-of-minute to represent, from 0 to 59
second
)

Obtains an instance of LocalDateTime from year, month, day, hour, minute and second, setting the nanosecond to zero.

public static LocalDateTime

Returns:

the local date-time, not null
of
(int
the year to represent, from MIN_YEAR to MAX_YEAR
year
,
int
the month-of-year to represent, from 1 (January) to 12 (December)
month
,
int
the day-of-month to represent, from 1 to 31
dayOfMonth
,
int
the hour-of-day to represent, from 0 to 23
hour
,
int
the minute-of-hour to represent, from 0 to 59
minute
,
int
the second-of-minute to represent, from 0 to 59
second
,
int
the nano-of-second to represent, from 0 to 999,999,999
nanoOfSecond
)

Obtains an instance of LocalDateTime from year, month, day, hour, minute, second and nanosecond.

public static LocalDateTime

Returns:

the local date-time, not null
of
(LocalDate
the local date, not null
date
,
LocalTime
the local time, not null
time
)

Obtains an instance of LocalDateTime from a date and time.

public static LocalDateTime

Returns:

the local date-time, not null
ofEpochSecond
(long
the number of seconds from the epoch of 1970-01-01T00:00:00Z
epochSecond
,
int
the nanosecond within the second, from 0 to 999,999,999
nanoOfSecond
,
ZoneOffset
the zone offset, not null
offset
)

Obtains an instance of LocalDateTime using seconds from the epoch of 1970-01-01T00:00:00Z.

public static LocalDateTime

Returns:

the local date-time, not null
ofInstant
(Instant
the instant to create the date-time from, not null
instant
,
ZoneId
the time-zone, which may be an offset, not null
zone
)

Obtains an instance of LocalDateTime from an Instant and zone ID.

This creates a local date-time based on the specified instant.

public static LocalDateTime

Returns:

the parsed local date-time, not null
parse
(CharSequence
the text to parse such as "2007-12-03T10:15:30", not null
text
)

Obtains an instance of LocalDateTime from a text string such as 2007-12-03T10:15:30.

public static LocalDateTime

Returns:

the parsed local date-time, not null
parse
(CharSequence
the text to parse, not null
text
,
DateTimeFormatter
the formatter to use, not null
formatter
)

Obtains an instance of LocalDateTime from a text string using a specific formatter.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the addition made, not null
plus
(TemporalAmount
the amount to add, not null
amountToAdd
)

Overrides default java.time.temporal.Temporal.plus, java.time.chrono.ChronoLocalDateTime.plus.

Returns a copy of this date-time with the specified amount added.
public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the specified amount added, not null
plus
(long
the amount of the unit to add to the result, may be negative
amountToAdd
,
TemporalUnit
the unit of the amount to add, not null
unit
)

Implements java.time.temporal.Temporal.plus, java.time.chrono.ChronoLocalDateTime.plus.

Returns a copy of this date-time with the specified amount added.
public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the days added, not null
plusDays
(long
the days to add, may be negative
days
)

Returns a copy of this LocalDateTime with the specified number of days added.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the hours added, not null
plusHours
(long
the hours to add, may be negative
hours
)

Returns a copy of this LocalDateTime with the specified number of hours added.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the minutes added, not null
plusMinutes
(long
the minutes to add, may be negative
minutes
)

Returns a copy of this LocalDateTime with the specified number of minutes added.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the months added, not null
plusMonths
(long
the months to add, may be negative
months
)

Returns a copy of this LocalDateTime with the specified number of months added.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the nanoseconds added, not null
plusNanos
(long
the nanos to add, may be negative
nanos
)

Returns a copy of this LocalDateTime with the specified number of nanoseconds added.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the seconds added, not null
plusSeconds
(long
the seconds to add, may be negative
seconds
)

Returns a copy of this LocalDateTime with the specified number of seconds added.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the weeks added, not null
plusWeeks
(long
the weeks to add, may be negative
weeks
)

Returns a copy of this LocalDateTime with the specified number of weeks added.

private LocalDateTime

Returns:

the combined result, not null
plusWithOverflow
(LocalDate
the new date to base the calculation on, not null
newDate
,
long
the hours to add, may be negative
hours
,
long
the minutes to add, may be negative
minutes
,
long
the seconds to add, may be negative
seconds
,
long
the nanos to add, may be negative
nanos
,
int
the sign to determine add or subtract
sign
)

Returns a copy of this LocalDateTime with the specified period added.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the years added, not null
plusYears
(long
the years to add, may be negative
years
)

Returns a copy of this LocalDateTime with the specified number of years added.

public <
the type of the result
R
>
R

Returns:

the query result, null may be returned (defined by the query)
query
(TemporalQuery<R>
the query to invoke, not null
query
)

Overrides default java.time.temporal.TemporalAccessor.query, java.time.chrono.ChronoLocalDateTime.query.

Queries this date-time using the specified query.
public ValueRange

Returns:

the range of valid values for the field, not null
range
(TemporalField
the field to query the range for, not null
field
)

Overrides default java.time.temporal.TemporalAccessor.range.

Gets the range of valid values for the specified field.
pack-priv static LocalDateTime
private void
readObject(ObjectInputStream
the stream to read
s
)

Defend against malicious streams.

public LocalDate

Returns:

the date part of this date-time, not null
toLocalDate
()

Implements java.time.chrono.ChronoLocalDateTime.toLocalDate.

Gets the LocalDate part of this date-time.
public LocalTime

Returns:

the time part of this date-time, not null
toLocalTime
()

Implements java.time.chrono.ChronoLocalDateTime.toLocalTime.

Gets the LocalTime part of this date-time.
public String

Returns:

a string representation of this date-time, not null
toString
()

Overrides java.lang.Object.toString.

Implements java.time.chrono.ChronoLocalDateTime.toString.

Outputs this date-time as a String, such as 2007-12-03T10:15:30.
public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the time truncated, not null
truncatedTo
(TemporalUnit
the unit to truncate to, not null
unit
)

Returns a copy of this LocalDateTime with the time truncated.

public long

Returns:

the amount of time between this date-time and the end date-time
until
(Temporal
the end date, exclusive, which is converted to a LocalDateTime, not null
endExclusive
,
TemporalUnit
the unit to measure the amount in, not null
unit
)

Implements java.time.temporal.Temporal.until.

Calculates the amount of time until another date-time in terms of the specified unit.
private LocalDateTime

Returns:

the date-time, not null
with
(LocalDate
the date of the new date-time, not null
newDate
,
LocalTime
the time of the new date-time, not null
newTime
)

Returns a copy of this date-time with the new date and time, checking to see if a new object is in fact required.

public LocalDateTime

Returns:

a LocalDateTime based on this with the adjustment made, not null
with
(TemporalAdjuster
the adjuster to use, not null
adjuster
)

Overrides default java.time.temporal.Temporal.with, java.time.chrono.ChronoLocalDateTime.with.

Returns an adjusted copy of this date-time.
public LocalDateTime

Returns:

a LocalDateTime based on this with the specified field set, not null
with
(TemporalField
the field to set in the result, not null
field
,
long
the new value of the field in the result
newValue
)

Implements java.time.temporal.Temporal.with, java.time.chrono.ChronoLocalDateTime.with.

Returns a copy of this date-time with the specified field set to a new value.
public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the requested day, not null
withDayOfMonth
(int
the day-of-month to set in the result, from 1 to 28-31
dayOfMonth
)

Returns a copy of this LocalDateTime with the day-of-month altered.

public LocalDateTime

Returns:

a LocalDateTime based on this date with the requested day, not null
withDayOfYear
(int
the day-of-year to set in the result, from 1 to 365-366
dayOfYear
)

Returns a copy of this LocalDateTime with the day-of-year altered.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the requested hour, not null
withHour
(int
the hour-of-day to set in the result, from 0 to 23
hour
)

Returns a copy of this LocalDateTime with the hour-of-day altered.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the requested minute, not null
withMinute
(int
the minute-of-hour to set in the result, from 0 to 59
minute
)

Returns a copy of this LocalDateTime with the minute-of-hour altered.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the requested month, not null
withMonth
(int
the month-of-year to set in the result, from 1 (January) to 12 (December)
month
)

Returns a copy of this LocalDateTime with the month-of-year altered.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the requested nanosecond, not null
withNano
(int
the nano-of-second to set in the result, from 0 to 999,999,999
nanoOfSecond
)

Returns a copy of this LocalDateTime with the nano-of-second altered.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the requested second, not null
withSecond
(int
the second-of-minute to set in the result, from 0 to 59
second
)

Returns a copy of this LocalDateTime with the second-of-minute altered.

public LocalDateTime

Returns:

a LocalDateTime based on this date-time with the requested year, not null
withYear
(int
the year to set in the result, from MIN_YEAR to MAX_YEAR
year
)

Returns a copy of this LocalDateTime with the year altered.

pack-priv void
private Object

Returns:

the instance of Ser, not null
writeReplace
()

Writes the object using a dedicated serialized form.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait