Java : LocalDateTime with Examples
LocalDateTime (Java SE 18 & JDK 18) with Examples.
You will find code examples on most LocalDateTime methods.
Summary
final var dateTime = LocalDateTime.of(2021, 4, 14, 13, 30, 15, 123000000);
System.out.println(dateTime); // 2021-04-14T13:30:15.123
System.out.println(dateTime.getYear()); // 2021
System.out.println(dateTime.getMonth()); // APRIL
System.out.println(dateTime.getDayOfMonth()); // 14
System.out.println(dateTime.getHour()); // 13
System.out.println(dateTime.getMinute()); // 30
System.out.println(dateTime.getSecond()); // 15
System.out.println(dateTime.getNano()); // 123000000
Fields
static final LocalDateTime MAX
System.out.println(LocalDateTime.MAX); // +999999999-12-31T23:59:59.999999999
static final LocalDateTime MIN
System.out.println(LocalDateTime.MIN); // -999999999-01-01T00:00
Methods
Temporal adjustInto (Temporal temporal)
final var temporal = OffsetDateTime.of(1999, 1, 2, 0, 0, 0, 0, ZoneOffset.ofHours(9));
System.out.println(temporal); // 1999-01-02T00:00+09:00
final var dateTime = LocalDateTime.of(2021, 4, 14, 10, 20);
System.out.println(dateTime); // 2021-04-14T10:20
final var result = dateTime.adjustInto(temporal);
System.out.println(result); // 2021-04-14T10:20+09:00
final var temporal = ZonedDateTime.of(2010, 8, 10, 12, 30, 45, 123000000, ZoneId.systemDefault());
System.out.println(temporal); // 2010-08-10T12:30:45.123-07:00[America/Los_Angeles]
final var dateTime = LocalDateTime.of(2021, 4, 14, 1, 2, 3, 456000000);
System.out.println(dateTime); // 2021-04-14T01:02:03.456
final var result = dateTime.adjustInto(temporal);
System.out.println(result); // 2021-04-14T01:02:03.456-07:00[America/Los_Angeles]
OffsetDateTime atOffset (ZoneOffset offset)
final var dateTime = LocalDateTime.of(2021, 4, 14, 15, 20);
System.out.println(dateTime); // 2021-04-14T15:20
System.out.println(dateTime.atOffset(ZoneOffset.UTC)); // 2021-04-14T15:20Z
System.out.println(dateTime.atOffset(ZoneOffset.ofHours(9))); // 2021-04-14T15:20+09:00
System.out.println(dateTime.atOffset(ZoneOffset.ofHoursMinutes(-7, -30))); // 2021-04-14T15:20-07:30
ZonedDateTime atZone (ZoneId zone)
final var dateTime = LocalDateTime.of(2021, 4, 14, 15, 20);
System.out.println(dateTime); // 2021-04-14T15:20
System.out.println(dateTime.atZone(ZoneId.systemDefault())); // 2021-04-14T15:20-07:00[America/Los_Angeles]
System.out.println(dateTime.atZone(ZoneId.of("Asia/Tokyo"))); // 2021-04-14T15:20+09:00[Asia/Tokyo]
System.out.println(dateTime.atZone(ZoneOffset.UTC)); // 2021-04-14T15:20Z
int compareTo (ChronoLocalDateTime<?> other)
final var dateTime1 = LocalDateTime.of(2021, 4, 14, 15, 20);
final var dateTime2 = LocalDateTime.of(2021, 4, 14, 15, 21);
System.out.println(dateTime1); // 2021-04-14T15:20
System.out.println(dateTime2); // 2021-04-14T15:21
System.out.println(dateTime1.compareTo(dateTime2)); // -1
final var dateTime1 = LocalDateTime.of(2021, 4, 15, 0, 0);
final var dateTime2 = LocalDateTime.of(2021, 4, 14, 0, 0);
System.out.println(dateTime1); // 2021-04-15T00:00
System.out.println(dateTime2); // 2021-04-14T00:00
System.out.println(dateTime1.compareTo(dateTime2)); // 1
final var dateTime1 = LocalDateTime.of(2021, 4, 15, 0, 0);
final var dateTime2 = LocalDateTime.of(1999, 1, 1, 23, 59);
System.out.println(dateTime1); // 2021-04-15T00:00
System.out.println(dateTime2); // 1999-01-01T23:59
System.out.println(dateTime1.compareTo(dateTime2)); // 22
final var dateTime1 = LocalDateTime.of(1999, 1, 1, 0, 0, 1);
final var dateTime2 = LocalDateTime.of(1999, 1, 1, 0, 0);
System.out.println(dateTime1); // 1999-01-01T00:00:01
System.out.println(dateTime2); // 1999-01-01T00:00
System.out.println(dateTime1.compareTo(dateTime2)); // 1
final var dateTime1 = LocalDateTime.of(2021, 4, 13, 0, 0, 0, 123);
final var dateTime2 = LocalDateTime.of(2021, 4, 13, 0, 0, 0, 456);
System.out.println(dateTime1); // 2021-04-13T00:00:00.000000123
System.out.println(dateTime2); // 2021-04-13T00:00:00.000000456
System.out.println(dateTime1.compareTo(dateTime2)); // -1
final var dateTime1 = LocalDateTime.of(2000, 1, 1, 0, 0);
final var dateTime2 = LocalDateTime.of(2000, 1, 1, 0, 0);
System.out.println(dateTime1); // 2000-01-01T00:00
System.out.println(dateTime2); // 2000-01-01T00:00
System.out.println(dateTime1.compareTo(dateTime2)); // 0
boolean equals (Object obj)
final var dateTime1 = LocalDateTime.of(2021, 4, 14, 15, 20);
final var dateTime2 = LocalDateTime.of(2021, 4, 14, 15, 21);
System.out.println(dateTime1); // 2021-04-14T15:20
System.out.println(dateTime2); // 2021-04-14T15:21
System.out.println(dateTime1.equals(dateTime2)); // false
final var dateTime1 = LocalDateTime.of(2021, 4, 15, 0, 0);
final var dateTime2 = LocalDateTime.of(2021, 4, 14, 0, 0);
System.out.println(dateTime1); // 2021-04-15T00:00
System.out.println(dateTime2); // 2021-04-14T00:00
System.out.println(dateTime1.equals(dateTime2)); // false
final var dateTime1 = LocalDateTime.of(2021, 4, 15, 0, 0);
final var dateTime2 = LocalDateTime.of(1999, 1, 1, 23, 59);
System.out.println(dateTime1); // 2021-04-15T00:00
System.out.println(dateTime2); // 1999-01-01T23:59
System.out.println(dateTime1.equals(dateTime2)); // false
final var dateTime1 = LocalDateTime.of(1999, 1, 1, 0, 0, 1);
final var dateTime2 = LocalDateTime.of(1999, 1, 1, 0, 0);
System.out.println(dateTime1); // 1999-01-01T00:00:01
System.out.println(dateTime2); // 1999-01-01T00:00
System.out.println(dateTime1.equals(dateTime2)); // false
final var dateTime1 = LocalDateTime.of(2021, 4, 13, 0, 0, 0, 123);
final var dateTime2 = LocalDateTime.of(2021, 4, 13, 0, 0, 0, 456);
System.out.println(dateTime1); // 2021-04-13T00:00:00.000000123
System.out.println(dateTime2); // 2021-04-13T00:00:00.000000456
System.out.println(dateTime1.equals(dateTime2)); // false
final var dateTime1 = LocalDateTime.of(2000, 1, 1, 0, 0);
final var dateTime2 = LocalDateTime.of(2000, 1, 1, 0, 0);
System.out.println(dateTime1); // 2000-01-01T00:00
System.out.println(dateTime2); // 2000-01-01T00:00
System.out.println(dateTime1.equals(dateTime2)); // true
String format (DateTimeFormatter formatter)
final var dateTime = LocalDateTime.of(2021, 4, 7, 13, 30, 45);
System.out.println(dateTime); // 2021-04-07T13:30:45
{
final var ret1 = dateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
System.out.println(ret1); // 2021-04-07T13:30:45
final var ret2 = dateTime.format(DateTimeFormatter.ofPattern("MM/dd/yyyy, HH:mm:ss"));
System.out.println(ret2); // 04/07/2021, 13:30:45
}
{
System.out.println(Locale.getDefault()); // en_US
final var ret1 = dateTime.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM));
System.out.println(ret1); // Apr 7, 2021, 1:30:45 PM
final var ret2 = dateTime.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT));
System.out.println(ret2); // 4/7/21, 1:30 PM
// FULL and LONG need the zone.
//dateTime.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL)); // DateTimeException
//dateTime.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG)); // DateTimeException
}
static LocalDateTime from (TemporalAccessor temporal)
final var temporal = OffsetDateTime.of(1999, 1, 2, 12, 30, 0, 0, ZoneOffset.ofHours(9));
System.out.println(temporal); // 1999-01-02T12:30+09:00
System.out.println(LocalDateTime.from(temporal)); // 1999-01-02T12:30
final var temporal = ZonedDateTime.of(2014, 4, 13, 12, 30, 45, 1234, ZoneId.systemDefault());
System.out.println(temporal); // 2014-04-13T12:30:45.000001234-07:00[America/Los_Angeles]
System.out.println(LocalDateTime.from(temporal)); // 2014-04-13T12:30:45.000001234
int get (TemporalField field)
final var dateTime = LocalDateTime.of(2014, 4, 13, 12, 30, 45, 123);
System.out.println(dateTime); // 2014-04-13T12:30:45.000000123
System.out.println(dateTime.get(ChronoField.YEAR)); // 2014
System.out.println(dateTime.get(ChronoField.MONTH_OF_YEAR)); // 4
System.out.println(dateTime.get(ChronoField.DAY_OF_MONTH)); // 13
System.out.println(dateTime.get(ChronoField.HOUR_OF_DAY)); // 12
System.out.println(dateTime.get(ChronoField.MINUTE_OF_HOUR)); // 30
System.out.println(dateTime.get(ChronoField.SECOND_OF_MINUTE)); // 45
System.out.println(dateTime.get(ChronoField.NANO_OF_SECOND)); // 123
//dateTime.get(ChronoField.OFFSET_SECONDS); // UnsupportedTemporalTypeException
int getDayOfMonth ()
final var dateTime = LocalDateTime.of(2021, 1, 1, 0, 0);
System.out.println(dateTime); // 2021-01-01T00:00
System.out.println(dateTime.getDayOfMonth()); // 1
final var dateTime = LocalDateTime.of(2021, 1, 2, 0, 0);
System.out.println(dateTime); // 2021-01-02T00:00
System.out.println(dateTime.getDayOfMonth()); // 2
final var dateTime = LocalDateTime.of(2021, 1, 3, 0, 0);
System.out.println(dateTime); // 2021-01-03T00:00
System.out.println(dateTime.getDayOfMonth()); // 3
final var dateTime = LocalDateTime.of(2021, 1, 30, 0, 0);
System.out.println(dateTime); // 2021-01-30T00:00
System.out.println(dateTime.getDayOfMonth()); // 30
final var dateTime = LocalDateTime.of(2021, 1, 31, 0, 0);
System.out.println(dateTime); // 2021-01-31T00:00
System.out.println(dateTime.getDayOfMonth()); // 31
final var dateTime = LocalDateTime.of(2021, 2, 1, 0, 0);
System.out.println(dateTime); // 2021-02-01T00:00
System.out.println(dateTime.getDayOfMonth()); // 1
DayOfWeek getDayOfWeek ()
final var dateTime = LocalDateTime.of(2021, 1, 3, 0, 0);
System.out.println(dateTime); // 2021-01-03T00:00
System.out.println(dateTime.getDayOfWeek()); // SUNDAY
final var dateTime = LocalDateTime.of(2021, 1, 4, 0, 0);
System.out.println(dateTime); // 2021-01-04T00:00
System.out.println(dateTime.getDayOfWeek()); // MONDAY
final var dateTime = LocalDateTime.of(2021, 1, 5, 0, 0);
System.out.println(dateTime); // 2021-01-05T00:00
System.out.println(dateTime.getDayOfWeek()); // TUESDAY
final var dateTime = LocalDateTime.of(2021, 1, 6, 0, 0);
System.out.println(dateTime); // 2021-01-06T00:00
System.out.println(dateTime.getDayOfWeek()); // WEDNESDAY
final var dateTime = LocalDateTime.of(2021, 1, 7, 0, 0);
System.out.println(dateTime); // 2021-01-07T00:00
System.out.println(dateTime.getDayOfWeek()); // THURSDAY
final var dateTime = LocalDateTime.of(2021, 1, 8, 0, 0);
System.out.println(dateTime); // 2021-01-08T00:00
System.out.println(dateTime.getDayOfWeek()); // FRIDAY
final var dateTime = LocalDateTime.of(2021, 1, 9, 0, 0);
System.out.println(dateTime); // 2021-01-09T00:00
System.out.println(dateTime.getDayOfWeek()); // SATURDAY
final var dateTime = LocalDateTime.of(2021, 1, 10, 0, 0);
System.out.println(dateTime); // 2021-01-10T00:00
System.out.println(dateTime.getDayOfWeek()); // SUNDAY
int getDayOfYear ()
final var dateTime = LocalDateTime.of(2021, 1, 1, 0, 0);
System.out.println(dateTime); // 2021-01-01T00:00
System.out.println(dateTime.getDayOfYear()); // 1
final var dateTime = LocalDateTime.of(2021, 1, 2, 0, 0);
System.out.println(dateTime); // 2021-01-02T00:00
System.out.println(dateTime.getDayOfYear()); // 2
final var dateTime = LocalDateTime.of(2021, 1, 30, 0, 0);
System.out.println(dateTime); // 2021-01-30T00:00
System.out.println(dateTime.getDayOfYear()); // 30
final var dateTime = LocalDateTime.of(2021, 1, 31, 0, 0);
System.out.println(dateTime); // 2021-01-31T00:00
System.out.println(dateTime.getDayOfYear()); // 31
final var dateTime = LocalDateTime.of(2021, 2, 1, 0, 0);
System.out.println(dateTime); // 2021-02-01T00:00
System.out.println(dateTime.getDayOfYear()); // 32
final var dateTime = LocalDateTime.of(2021, 2, 2, 0, 0);
System.out.println(dateTime); // 2021-02-02T00:00
System.out.println(dateTime.getDayOfYear()); // 33
final var dateTime = LocalDateTime.of(2021, 12, 31, 0, 0);
System.out.println(dateTime); // 2021-12-31T00:00
System.out.println(dateTime.getDayOfYear()); // 365
final var dateTime = LocalDateTime.of(2022, 1, 1, 0, 0);
System.out.println(dateTime); // 2022-01-01T00:00
System.out.println(dateTime.getDayOfYear()); // 1
int getHour ()
final var dateTime = LocalDateTime.of(2021, 1, 1, 14, 30, 15);
System.out.println(dateTime); // 2021-01-01T14:30:15
System.out.println(dateTime.getHour()); // 14
long getLong (TemporalField field)
final var dateTime = LocalDateTime.of(2014, 4, 13, 12, 30, 45, 123);
System.out.println(dateTime); // 2014-04-13T12:30:45.000000123
System.out.println(dateTime.getLong(ChronoField.YEAR)); // 2014
System.out.println(dateTime.getLong(ChronoField.MONTH_OF_YEAR)); // 4
System.out.println(dateTime.getLong(ChronoField.DAY_OF_MONTH)); // 13
System.out.println(dateTime.getLong(ChronoField.HOUR_OF_DAY)); // 12
System.out.println(dateTime.getLong(ChronoField.MINUTE_OF_HOUR)); // 30
System.out.println(dateTime.getLong(ChronoField.SECOND_OF_MINUTE)); // 45
System.out.println(dateTime.getLong(ChronoField.NANO_OF_SECOND)); // 123
//dateTime.getLong(ChronoField.OFFSET_SECONDS); // UnsupportedTemporalTypeException
int getMinute ()
final var dateTime = LocalDateTime.of(2021, 1, 1, 13, 30, 15);
System.out.println(dateTime); // 2021-01-01T13:30:15
System.out.println(dateTime.getMinute()); // 30
Month getMonth ()
final var dateTime = LocalDateTime.of(2021, 1, 15, 0, 0);
System.out.println(dateTime); // 2021-01-15T00:00
System.out.println(dateTime.getMonth()); // JANUARY
final var dateTime = LocalDateTime.of(2021, 2, 15, 0, 0);
System.out.println(dateTime); // 2021-02-15T00:00
System.out.println(dateTime.getMonth()); // FEBRUARY
final var dateTime = LocalDateTime.of(2021, 3, 15, 0, 0);
System.out.println(dateTime); // 2021-03-15T00:00
System.out.println(dateTime.getMonth()); // MARCH
final var dateTime = LocalDateTime.of(2021, 12, 15, 0, 0);
System.out.println(dateTime); // 2021-12-15T00:00
System.out.println(dateTime.getMonth()); // DECEMBER
final var dateTime = LocalDateTime.of(2022, 1, 1, 0, 0);
System.out.println(dateTime); // 2022-01-01T00:00
System.out.println(dateTime.getMonth()); // JANUARY
int getMonthValue ()
final var dateTime = LocalDateTime.of(2021, 1, 15, 0, 0);
System.out.println(dateTime); // 2021-01-15T00:00
System.out.println(dateTime.getMonthValue()); // 1
final var dateTime = LocalDateTime.of(2021, 2, 15, 0, 0);
System.out.println(dateTime); // 2021-02-15T00:00
System.out.println(dateTime.getMonthValue()); // 2
final var dateTime = LocalDateTime.of(2021, 3, 15, 0, 0);
System.out.println(dateTime); // 2021-03-15T00:00
System.out.println(dateTime.getMonthValue()); // 3
final var dateTime = LocalDateTime.of(2021, 12, 15, 0, 0);
System.out.println(dateTime); // 2021-12-15T00:00
System.out.println(dateTime.getMonthValue()); // 12
final var dateTime = LocalDateTime.of(2022, 1, 1, 0, 0);
System.out.println(dateTime); // 2022-01-01T00:00
System.out.println(dateTime.getMonthValue()); // 1
int getNano ()
final var dateTime = LocalDateTime.of(2021, 1, 1, 13, 30, 15);
System.out.println(dateTime); // 2021-01-01T13:30:15
System.out.println(dateTime.getNano()); // 0
final var dateTime = LocalDateTime.of(2021, 1, 1, 13, 30, 15, 123456789);
System.out.println(dateTime); // 2021-01-01T13:30:15.123456789
System.out.println(dateTime.getNano()); // 123456789
int getSecond ()
final var dateTime = LocalDateTime.of(2021, 1, 1, 13, 30, 15);
System.out.println(dateTime); // 2021-01-01T13:30:15
System.out.println(dateTime.getSecond()); // 15
int getYear ()
final var dateTime = LocalDateTime.of(1999, 1, 1, 0, 0);
System.out.println(dateTime); // 1999-01-01T00:00
System.out.println(dateTime.getYear()); // 1999
final var dateTime = LocalDateTime.of(2000, 1, 1, 0, 0);
System.out.println(dateTime); // 2000-01-01T00:00
System.out.println(dateTime.getYear()); // 2000
final var dateTime = LocalDateTime.of(-3000, 1, 1, 0, 0);
System.out.println(dateTime); // -3000-01-01T00:00
System.out.println(dateTime.getYear()); // -3000
final var dateTime = LocalDateTime.of(9999, 1, 1, 0, 0);
System.out.println(dateTime); // 9999-01-01T00:00
System.out.println(dateTime.getYear()); // 9999
int hashCode ()
System.out.println(LocalDateTime.of(1999, 1, 1, 0, 0).hashCode()); // 4094017
System.out.println(LocalDateTime.of(2021, 4, 13, 12, 30, 40, 123).hashCode()); // -1324588672
System.out.println(LocalDateTime.MIN.hashCode()); // -304793535
System.out.println(LocalDateTime.MAX.hashCode()); // 2090566260
boolean isAfter (ChronoLocalDateTime<?> other)
final var dateTime = LocalDateTime.of(2000, 1, 1, 0, 0);
System.out.println(dateTime); // 2000-01-01T00:00
final var dateTime2 = LocalDateTime.of(1999, 1, 1, 0, 0);
final var dateTime3 = LocalDateTime.of(2000, 1, 1, 0, 0);
final var dateTime4 = LocalDateTime.of(2001, 1, 1, 0, 0);
System.out.println(dateTime2); // 1999-01-01T00:00
System.out.println(dateTime3); // 2000-01-01T00:00
System.out.println(dateTime4); // 2001-01-01T00:00
System.out.println(dateTime.isAfter(dateTime2)); // true
System.out.println(dateTime.isAfter(dateTime3)); // false
System.out.println(dateTime.isAfter(dateTime4)); // false
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 0);
System.out.println(dateTime); // 2000-01-01T13:00
final var dateTime2 = LocalDateTime.of(2000, 1, 1, 13, 0, 0);
final var dateTime3 = LocalDateTime.of(2000, 1, 1, 13, 0, 1);
final var dateTime4 = LocalDateTime.of(2000, 1, 1, 12, 59);
System.out.println(dateTime2); // 2000-01-01T13:00
System.out.println(dateTime3); // 2000-01-01T13:00:01
System.out.println(dateTime4); // 2000-01-01T12:59
System.out.println(dateTime.isAfter(dateTime2)); // false
System.out.println(dateTime.isAfter(dateTime3)); // false
System.out.println(dateTime.isAfter(dateTime4)); // true
boolean isBefore (ChronoLocalDateTime<?> other)
final var dateTime = LocalDateTime.of(2000, 1, 1, 0, 0);
System.out.println(dateTime); // 2000-01-01T00:00
final var dateTime2 = LocalDateTime.of(1999, 1, 1, 0, 0);
final var dateTime3 = LocalDateTime.of(2000, 1, 1, 0, 0);
final var dateTime4 = LocalDateTime.of(2001, 1, 1, 0, 0);
System.out.println(dateTime2); // 1999-01-01T00:00
System.out.println(dateTime3); // 2000-01-01T00:00
System.out.println(dateTime4); // 2001-01-01T00:00
System.out.println(dateTime.isBefore(dateTime2)); // false
System.out.println(dateTime.isBefore(dateTime3)); // false
System.out.println(dateTime.isBefore(dateTime4)); // true
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 0);
System.out.println(dateTime); // 2000-01-01T13:00
final var dateTime2 = LocalDateTime.of(2000, 1, 1, 13, 0, 0);
final var dateTime3 = LocalDateTime.of(2000, 1, 1, 13, 0, 1);
final var dateTime4 = LocalDateTime.of(2000, 1, 1, 12, 59);
System.out.println(dateTime2); // 2000-01-01T13:00
System.out.println(dateTime3); // 2000-01-01T13:00:01
System.out.println(dateTime4); // 2000-01-01T12:59
System.out.println(dateTime.isBefore(dateTime2)); // false
System.out.println(dateTime.isBefore(dateTime3)); // true
System.out.println(dateTime.isBefore(dateTime4)); // false
boolean isEqual (ChronoLocalDateTime<?> other)
final var dateTime1 = LocalDateTime.of(2012, 6, 30, 12, 0);
final var dateTime2 = LocalDateTime.of(2012, 7, 1, 12, 0);
System.out.println(dateTime1); // 2012-06-30T12:00
System.out.println(dateTime2); // 2012-07-01T12:00
System.out.println(dateTime1.isEqual(dateTime2)); // false
System.out.println(dateTime1.isEqual(dateTime1)); // true
System.out.println(dateTime2.isEqual(dateTime1)); // false
final var dateTime1 = LocalDateTime.of(2000, 1, 1, 13, 0);
final var dateTime2 = LocalDateTime.of(2000, 1, 1, 12, 59);
System.out.println(dateTime1); // 2000-01-01T13:00
System.out.println(dateTime2); // 2000-01-01T12:59
System.out.println(dateTime1.isEqual(dateTime2)); // false
System.out.println(dateTime1.isEqual(dateTime1)); // true
System.out.println(dateTime2.isEqual(dateTime1)); // false
boolean isSupported (TemporalField field)
final var dateTime = LocalDateTime.of(2014, 4, 13, 12, 30, 45, 123);
System.out.println(dateTime); // 2014-04-13T12:30:45.000000123
System.out.println(dateTime.isSupported(ChronoField.YEAR)); // true
System.out.println(dateTime.get(ChronoField.YEAR)); // 2014
System.out.println(dateTime.isSupported(ChronoField.MONTH_OF_YEAR)); // true
System.out.println(dateTime.get(ChronoField.MONTH_OF_YEAR)); // 4
System.out.println(dateTime.isSupported(ChronoField.DAY_OF_MONTH)); // true
System.out.println(dateTime.get(ChronoField.DAY_OF_MONTH)); // 13
System.out.println(dateTime.isSupported(ChronoField.HOUR_OF_DAY)); // true
System.out.println(dateTime.get(ChronoField.HOUR_OF_DAY)); // 12
System.out.println(dateTime.isSupported(ChronoField.MINUTE_OF_HOUR)); // true
System.out.println(dateTime.get(ChronoField.MINUTE_OF_HOUR)); // 30
System.out.println(dateTime.isSupported(ChronoField.SECOND_OF_MINUTE)); // true
System.out.println(dateTime.get(ChronoField.SECOND_OF_MINUTE)); // 45
System.out.println(dateTime.isSupported(ChronoField.NANO_OF_SECOND)); // true
System.out.println(dateTime.get(ChronoField.NANO_OF_SECOND)); // 123
System.out.println(dateTime.isSupported(ChronoField.OFFSET_SECONDS)); // false
//dateTime.get(ChronoField.OFFSET_SECONDS); // UnsupportedTemporalTypeException
boolean isSupported (TemporalUnit unit)
final var dateTime = LocalDateTime.of(2014, 4, 13, 12, 30, 45, 123);
System.out.println(dateTime); // 2014-04-13T12:30:45.000000123
System.out.println(dateTime.isSupported(ChronoUnit.YEARS)); // true
System.out.println(dateTime.isSupported(ChronoUnit.MONTHS)); // true
System.out.println(dateTime.isSupported(ChronoUnit.WEEKS)); // true
System.out.println(dateTime.isSupported(ChronoUnit.DAYS)); // true
System.out.println(dateTime.isSupported(ChronoUnit.HOURS)); // true
System.out.println(dateTime.isSupported(ChronoUnit.MINUTES)); // true
System.out.println(dateTime.isSupported(ChronoUnit.SECONDS)); // true
System.out.println(dateTime.isSupported(ChronoUnit.NANOS)); // true
System.out.println(dateTime.isSupported(ChronoUnit.FOREVER)); // false
LocalDateTime minus (long amountToSubtract, TemporalUnit unit)
final var dateTime = LocalDateTime.of(2021, 4, 13, 0, 0);
System.out.println(dateTime); // 2021-04-13T00:00
System.out.println(dateTime.minus(1, ChronoUnit.YEARS)); // 2020-04-13T00:00
System.out.println(dateTime.minus(2, ChronoUnit.MONTHS)); // 2021-02-13T00:00
System.out.println(dateTime.minus(3, ChronoUnit.DAYS)); // 2021-04-10T00:00
final var dateTime = LocalDateTime.of(2000, 1, 1, 10, 20, 30, 123);
System.out.println(dateTime); // 2000-01-01T10:20:30.000000123
System.out.println(dateTime.minus(1, ChronoUnit.HOURS)); // 2000-01-01T09:20:30.000000123
System.out.println(dateTime.minus(2, ChronoUnit.MINUTES)); // 2000-01-01T10:18:30.000000123
System.out.println(dateTime.minus(3, ChronoUnit.SECONDS)); // 2000-01-01T10:20:27.000000123
System.out.println(dateTime.minus(4, ChronoUnit.NANOS)); // 2000-01-01T10:20:30.000000119
final var dateTime = LocalDateTime.of(2000, 1, 1, 0, 0);
System.out.println(dateTime); // 2000-01-01T00:00
System.out.println(dateTime.minus(1, ChronoUnit.HOURS)); // 1999-12-31T23:00
System.out.println(dateTime.minus(365, ChronoUnit.DAYS)); // 1999-01-01T00:00
System.out.println(dateTime.minus(3000, ChronoUnit.YEARS)); // -1000-01-01T00:00
LocalDateTime minus (TemporalAmount amountToSubtract)
final var dateTime = LocalDateTime.of(2021, 4, 13, 0, 0);
System.out.println(dateTime); // 2021-04-13T00:00
System.out.println(dateTime.minus(Period.ofYears(1))); // 2020-04-13T00:00
System.out.println(dateTime.minus(Period.ofMonths(2))); // 2021-02-13T00:00
System.out.println(dateTime.minus(Period.ofDays(3))); // 2021-04-10T00:00
final var dateTime = LocalDateTime.of(2000, 1, 1, 10, 20, 30, 123);
System.out.println(dateTime); // 2000-01-01T10:20:30.000000123
System.out.println(dateTime.minus(Duration.ofHours(1))); // 2000-01-01T09:20:30.000000123
System.out.println(dateTime.minus(Duration.ofMinutes(2))); // 2000-01-01T10:18:30.000000123
System.out.println(dateTime.minus(Duration.ofSeconds(3))); // 2000-01-01T10:20:27.000000123
System.out.println(dateTime.minus(Duration.ofNanos(4))); // 2000-01-01T10:20:30.000000119
final var dateTime = LocalDateTime.of(2000, 1, 1, 0, 0);
System.out.println(dateTime); // 2000-01-01T00:00
System.out.println(dateTime.minus(Duration.ofHours(1))); // 1999-12-31T23:00
System.out.println(dateTime.minus(Period.ofDays(365))); // 1999-01-01T00:00
System.out.println(dateTime.minus(Period.ofYears(3000))); // -1000-01-01T00:00
LocalDateTime minusDays (long days)
final var dateTime = LocalDateTime.of(2021, 5, 20, 0, 0);
System.out.println(dateTime); // 2021-05-20T00:00
System.out.println(dateTime.minusDays(1)); // 2021-05-19T00:00
System.out.println(dateTime.minusDays(2)); // 2021-05-18T00:00
System.out.println(dateTime.minusDays(20)); // 2021-04-30T00:00
System.out.println(dateTime.minusDays(365)); // 2020-05-20T00:00
final var dateTime = LocalDateTime.of(2000, 1, 1, 0, 0);
System.out.println(dateTime); // 2000-01-01T00:00
System.out.println(dateTime.minusDays(1)); // 1999-12-31T00:00
LocalDateTime minusHours (long hours)
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 30, 15);
System.out.println(dateTime); // 2000-01-01T13:30:15
System.out.println(dateTime.minusHours(1)); // 2000-01-01T12:30:15
System.out.println(dateTime.minusHours(2)); // 2000-01-01T11:30:15
System.out.println(dateTime.minusHours(13)); // 2000-01-01T00:30:15
System.out.println(dateTime.minusHours(14)); // 1999-12-31T23:30:15
LocalDateTime minusMinutes (long minutes)
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 30);
System.out.println(dateTime); // 2000-01-01T13:30
System.out.println(dateTime.minusMinutes(1)); // 2000-01-01T13:29
System.out.println(dateTime.minusMinutes(2)); // 2000-01-01T13:28
System.out.println(dateTime.minusMinutes(30)); // 2000-01-01T13:00
System.out.println(dateTime.minusMinutes(31)); // 2000-01-01T12:59
System.out.println(dateTime.minusMinutes(60 * 14)); // 1999-12-31T23:30
LocalDateTime minusMonths (long months)
final var dateTime = LocalDateTime.of(2021, 5, 20, 0, 0);
System.out.println(dateTime); // 2021-05-20T00:00
System.out.println(dateTime.minusMonths(1)); // 2021-04-20T00:00
System.out.println(dateTime.minusMonths(2)); // 2021-03-20T00:00
System.out.println(dateTime.minusMonths(12)); // 2020-05-20T00:00
final var dateTime = LocalDateTime.of(2007, 3, 31, 0, 0);
System.out.println(dateTime); // 2007-03-31T00:00
System.out.println(dateTime.minusMonths(1)); // 2007-02-28T00:00
LocalDateTime minusNanos (long nanos)
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 30, 15, 123);
System.out.println(dateTime); // 2000-01-01T13:30:15.000000123
System.out.println(dateTime.minusNanos(1)); // 2000-01-01T13:30:15.000000122
System.out.println(dateTime.minusNanos(2)); // 2000-01-01T13:30:15.000000121
System.out.println(dateTime.minusNanos(123)); // 2000-01-01T13:30:15
System.out.println(dateTime.minusNanos(124)); // 2000-01-01T13:30:14.999999999
System.out.println(dateTime.minusNanos(1000000000L * 60 * 60 * 24 * 365)); // 1999-01-01T13:30:15.000000123
LocalDateTime minusSeconds (long seconds)
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 30, 15);
System.out.println(dateTime); // 2000-01-01T13:30:15
System.out.println(dateTime.minusSeconds(1)); // 2000-01-01T13:30:14
System.out.println(dateTime.minusSeconds(2)); // 2000-01-01T13:30:13
System.out.println(dateTime.minusSeconds(15)); // 2000-01-01T13:30
System.out.println(dateTime.minusSeconds(16)); // 2000-01-01T13:29:59
System.out.println(dateTime.minusSeconds(60 * 60)); // 2000-01-01T12:30:15
System.out.println(dateTime.minusSeconds(60 * 60 * 24)); // 1999-12-31T13:30:15
System.out.println(dateTime.minusSeconds(60 * 60 * 24 * 366)); // 1998-12-31T13:30:15
LocalDateTime minusWeeks (long weeks)
final var dateTime = LocalDateTime.of(2021, 5, 20, 0, 0);
System.out.println(dateTime); // 2021-05-20T00:00
System.out.println(dateTime.minusWeeks(1)); //2021-05-13T00:00
System.out.println(dateTime.minusWeeks(2)); // 2021-05-06T00:00
System.out.println(dateTime.minusWeeks(20)); // 2020-12-31T00:00
System.out.println(dateTime.minusWeeks(100)); // 2019-06-20T00:00
final var dateTime = LocalDateTime.of(2009, 1, 7, 0, 0);
System.out.println(dateTime); // 2009-01-07T00:00
System.out.println(dateTime.minusWeeks(1)); // 2008-12-31T00:00
LocalDateTime minusYears (long years)
final var dateTime = LocalDateTime.of(2021, 5, 20, 0, 0);
System.out.println(dateTime); // 2021-05-20T00:00
System.out.println(dateTime.minusYears(1)); // 2020-05-20T00:00
System.out.println(dateTime.minusYears(2)); // 2019-05-20T00:00
System.out.println(dateTime.minusYears(10)); // 2011-05-20T00:00
final var dateTime = LocalDateTime.of(2020, 2, 29, 0, 0);
System.out.println(dateTime); // 2020-02-29T00:00
System.out.println(dateTime.minusYears(1)); // 2019-02-28T00:00
static LocalDateTime now ()
System.out.println(LocalDateTime.now()); // 2021-04-14T13:53:02.356109600
static LocalDateTime now (Clock clock)
// Clock advanced for 5 days.
final var clock = Clock.offset(Clock.systemDefaultZone(), Duration.ofDays(5));
System.out.println(LocalDateTime.now()); // 2021-04-14T13:54:28.676847300
System.out.println(LocalDateTime.now(clock)); // 2021-04-19T13:54:28.683844200
static LocalDateTime now (ZoneId zone)
System.out.println(LocalDateTime.now()); // 2022-01-24T20:41:54.286146200
System.out.println(ZonedDateTime.now()); // 2022-01-24T20:41:54.287146100-08:00[America/Los_Angeles]
System.out.println(LocalDateTime.now(ZoneOffset.UTC)); // 2022-01-25T04:41:54.287146100
static LocalDateTime of (int year, int month, int dayOfMonth, int hour, int minute)
System.out.println(LocalDateTime.of(2021, 4, 14, 13, 30)); // 2021-04-14T13:30
System.out.println(LocalDateTime.of(2100, 2, 28, 0, 0)); // 2100-02-28T00:00
System.out.println(LocalDateTime.of(-999, 12, 1, 23, 59)); // -0999-12-01T23:59
//LocalDateTime.of(2000, 13, 1, 0, 0); // DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 13
static LocalDateTime of (int year, int month, int dayOfMonth, int hour, int minute, int second)
System.out.println(LocalDateTime.of(2021, 4, 14, 13, 30, 10)); // 2021-04-14T13:30:10
System.out.println(LocalDateTime.of(2100, 2, 28, 0, 0, 0)); // 2100-02-28T00:00
System.out.println(LocalDateTime.of(-999, 12, 1, 23, 59, 59)); // -0999-12-01T23:59:59
//LocalDateTime.of(2000, 13, 1, 0, 0, 0); // DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 13
static LocalDateTime of (int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond)
System.out.println(LocalDateTime.of(2021, 4, 14, 13, 30, 10, 123)); // 2021-04-14T13:30:10.000000123
System.out.println(LocalDateTime.of(2100, 2, 28, 0, 0, 0, 0)); // 2100-02-28T00:00
System.out.println(LocalDateTime.of(-999, 12, 1, 23, 59, 59, 999999999)); // -0999-12-01T23:59:59.999999999
//LocalDateTime.of(2000, 13, 1, 0, 0, 0, 0); // DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 13
static LocalDateTime of (int year, Month month, int dayOfMonth, int hour, int minute)
System.out.println(LocalDateTime.of(2021, Month.APRIL, 14, 13, 30)); // 2021-04-14T13:30
System.out.println(LocalDateTime.of(2100, Month.FEBRUARY, 28, 0, 0)); // 2100-02-28T00:00
System.out.println(LocalDateTime.of(-999, Month.DECEMBER, 1, 23, 59)); // -0999-12-01T23:59
//LocalDateTime.of(2000, Month.JANUARY, 99, 0, 0); // DateTimeException: Invalid value for DayOfMonth
static LocalDateTime of (int year, Month month, int dayOfMonth, int hour, int minute, int second)
System.out.println(LocalDateTime.of(2021, Month.APRIL, 14, 13, 30, 10)); // 2021-04-14T13:30:10
System.out.println(LocalDateTime.of(2100, Month.FEBRUARY, 28, 0, 0, 0)); // 2100-02-28T00:00
System.out.println(LocalDateTime.of(-999, Month.DECEMBER, 1, 23, 59, 59)); // -0999-12-01T23:59:59
//LocalDateTime.of(2000, Month.JANUARY, 99, 0, 0, 0); // DateTimeException: Invalid value for DayOfMonth
static LocalDateTime of (int year, Month month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond)
System.out.println(LocalDateTime.of(2021, Month.APRIL, 14, 13, 30, 10, 123)); // 2021-04-14T13:30:10.000000123
System.out.println(LocalDateTime.of(2100, Month.FEBRUARY, 28, 0, 0, 0, 0)); // 2100-02-28T00:00
System.out.println(LocalDateTime.of(-999, Month.DECEMBER, 1, 23, 59, 59, 999999999)); // -0999-12-01T23:59:59.999999999
//LocalDateTime.of(2000, Month.JANUARY, 99, 0, 0, 0, 0); // DateTimeException: Invalid value for DayOfMonth
static LocalDateTime of (LocalDate date, LocalTime time)
final var date = LocalDate.of(2021, Month.APRIL, 14);
System.out.println(date); // 2021-04-14
final var time = LocalTime.of(13, 30, 10);
System.out.println(time); // 13:30:10
System.out.println(LocalDateTime.of(date, time)); // 2021-04-14T13:30:10
final var date = LocalDate.of(2100, Month.FEBRUARY, 28);
System.out.println(date); // 2100-02-28
System.out.println(LocalDateTime.of(date, LocalTime.MIN)); // 2100-02-28T00:00
static LocalDateTime ofEpochSecond (long epochSecond, int nanoOfSecond, ZoneOffset offset)
final var epochSecond = 1617883200;
System.out.println(Instant.ofEpochSecond(epochSecond)); // 2021-04-08T12:00:00Z
final var dateTime1 = LocalDateTime.ofEpochSecond(epochSecond, 0, ZoneOffset.UTC);
System.out.println(dateTime1); // 2021-04-08T12:00
final var dateTime2 = LocalDateTime.ofEpochSecond(epochSecond, 0, ZoneOffset.ofHours(-9));
System.out.println(dateTime2); // 2021-04-08T03:00
final var dateTime3 = LocalDateTime.ofEpochSecond(epochSecond, 123456789, ZoneOffset.UTC);
System.out.println(dateTime3); // 2021-04-08T12:00:00.123456789
static LocalDateTime ofInstant (Instant instant, ZoneId zone)
final var instant = Instant.ofEpochSecond(1617883200);
System.out.println(instant); // 2021-04-08T12:00:00Z
final var dateTime1 = LocalDateTime.ofInstant(instant, ZoneOffset.UTC);
System.out.println(dateTime1); // 2021-04-08T12:00
final var zoneId = ZoneId.systemDefault();
System.out.println(zoneId); // America/Los_Angeles
final var dateTime2 = LocalDateTime.ofInstant(instant, zoneId);
System.out.println(dateTime2); // 2021-04-08T05:00
static LocalDateTime parse (CharSequence text)
System.out.println(LocalDateTime.parse("2021-04-14T00:00")); // 2021-04-14T00:00
System.out.println(LocalDateTime.parse("2021-04-14T13:30:45")); // 2021-04-14T13:30:45
System.out.println(LocalDateTime.parse("2021-04-14T13:30:45.123456789")); // 2021-04-14T13:30:45.123456789
//LocalDateTime.parse("2021-04-14"); // DateTimeParseException
//LocalDateTime.parse("13:30:45"); // DateTimeParseException
//LocalDateTime.parse("2021-04-03 00:00"); // DateTimeParseException
static LocalDateTime parse (CharSequence text, DateTimeFormatter formatter)
final var ret1 = LocalDateTime.parse(
"2021-04-14T12:30:45", DateTimeFormatter.ISO_LOCAL_DATE_TIME);
System.out.println(ret1); // 2021-04-14T12:30:45
final var ret2 = LocalDateTime.parse(
"4/14/2021, 12:30:45", DateTimeFormatter.ofPattern("M/d/y, H:m:s"));
System.out.println(ret2); // 2021-04-14T12:30:45
System.out.println(Locale.getDefault()); // en_US
final var ret1 = LocalDateTime.parse(
"Apr 7, 2021, 1:30:45 PM", DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM));
System.out.println(ret1); // 2021-04-07T13:30:45
final var ret2 = LocalDateTime.parse(
"4/7/21, 1:30 PM", DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT));
System.out.println(ret2); // 2021-04-07T13:30
LocalDateTime plus (long amountToAdd, TemporalUnit unit)
final var dateTime = LocalDateTime.of(2021, 4, 13, 0, 0);
System.out.println(dateTime); // 2021-04-13T00:00
System.out.println(dateTime.plus(1, ChronoUnit.YEARS)); // 2022-04-13T00:00
System.out.println(dateTime.plus(2, ChronoUnit.MONTHS)); // 2021-06-13T00:00
System.out.println(dateTime.plus(3, ChronoUnit.DAYS)); // 2021-04-16T00:00
final var dateTime = LocalDateTime.of(2000, 1, 1, 10, 20, 30, 123);
System.out.println(dateTime); // 2000-01-01T10:20:30.000000123
System.out.println(dateTime.plus(1, ChronoUnit.HOURS)); // 2000-01-01T11:20:30.000000123
System.out.println(dateTime.plus(2, ChronoUnit.MINUTES)); // 2000-01-01T10:22:30.000000123
System.out.println(dateTime.plus(3, ChronoUnit.SECONDS)); // 2000-01-01T10:20:33.000000123
System.out.println(dateTime.plus(4, ChronoUnit.NANOS)); // 2000-01-01T10:20:30.000000127
final var dateTime = LocalDateTime.of(1999, 12, 31, 23, 0);
System.out.println(dateTime); // 1999-12-31T23:00
System.out.println(dateTime.plus(1, ChronoUnit.HOURS)); // 2000-01-01T00:00
System.out.println(dateTime.plus(367, ChronoUnit.DAYS)); // 2001-01-01T23:00
System.out.println(dateTime.plus(3000, ChronoUnit.YEARS)); // 4999-12-31T23:00
LocalDateTime plus (TemporalAmount amountToAdd)
final var dateTime = LocalDateTime.of(2021, 4, 13, 0, 0);
System.out.println(dateTime); // 2021-04-13T00:00
System.out.println(dateTime.plus(Period.ofYears(1))); // 2022-04-13T00:00
System.out.println(dateTime.plus(Period.ofMonths(2))); // 2021-06-13T00:00
System.out.println(dateTime.plus(Period.ofDays(3))); // 2021-04-16T00:00
final var dateTime = LocalDateTime.of(2000, 1, 1, 10, 20, 30, 123);
System.out.println(dateTime); // 2000-01-01T10:20:30.000000123
System.out.println(dateTime.plus(Duration.ofHours(1))); // 2000-01-01T11:20:30.000000123
System.out.println(dateTime.plus(Duration.ofMinutes(2))); // 2000-01-01T10:22:30.000000123
System.out.println(dateTime.plus(Duration.ofSeconds(3))); // 2000-01-01T10:20:33.000000123
System.out.println(dateTime.plus(Duration.ofNanos(4))); // 2000-01-01T10:20:30.000000127
final var dateTime = LocalDateTime.of(1999, 12, 31, 23, 0);
System.out.println(dateTime); // 1999-12-31T23:00
System.out.println(dateTime.plus(Duration.ofHours(1))); // 2000-01-01T00:00
System.out.println(dateTime.plus(Period.ofDays(367))); // 2001-01-01T23:00
System.out.println(dateTime.plus(Period.ofYears(3000))); // 4999-12-31T23:00
LocalDateTime plusDays (long days)
final var dateTime = LocalDateTime.of(2021, 5, 20, 0, 0);
System.out.println(dateTime); // 2021-05-20T00:00
System.out.println(dateTime.plusDays(1)); // 2021-05-21T00:00
System.out.println(dateTime.plusDays(2)); // 2021-05-22T00:00
System.out.println(dateTime.plusDays(12)); // 2021-06-01T00:00
System.out.println(dateTime.plusDays(365)); // 2022-05-20T00:00
final var dateTime = LocalDateTime.of(2008, 12, 31, 0, 0);
System.out.println(dateTime); // 2008-12-31T00:00
System.out.println(dateTime.plusDays(1)); // 2009-01-01T00:00
LocalDateTime plusHours (long hours)
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 0);
System.out.println(dateTime); // 2000-01-01T13:00
System.out.println(dateTime.plusHours(1)); // 2000-01-01T14:00
System.out.println(dateTime.plusHours(2)); // 2000-01-01T15:00
System.out.println(dateTime.plusHours(11)); // 2000-01-02T00:00
System.out.println(dateTime.plusHours(12)); // 2000-01-02T01:00
LocalDateTime plusMinutes (long minutes)
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 30);
System.out.println(dateTime); // 2000-01-01T13:30
System.out.println(dateTime.plusMinutes(1)); // 2000-01-01T13:31
System.out.println(dateTime.plusMinutes(2)); // 2000-01-01T13:32
System.out.println(dateTime.plusMinutes(30)); // 2000-01-01T14:00
System.out.println(dateTime.plusMinutes(31)); // 2000-01-01T14:01
System.out.println(dateTime.plusMinutes(60 * 24)); // 2000-01-02T13:30
System.out.println(dateTime.plusMinutes(60 * 24 * 366)); // 2001-01-01T13:30
LocalDateTime plusMonths (long months)
final var dateTime = LocalDateTime.of(2021, 5, 20, 0, 0);
System.out.println(dateTime); // 2021-05-20T00:00
System.out.println(dateTime.plusMonths(1)); // 2021-06-20T00:00
System.out.println(dateTime.plusMonths(2)); // 2021-07-20T00:00
System.out.println(dateTime.plusMonths(12)); // 2022-05-20T00:00
final var dateTime = LocalDateTime.of(2007, 3, 31, 0, 0);
System.out.println(dateTime); // 2007-03-31T00:00
System.out.println(dateTime.plusMonths(1)); // 2007-04-30T00:00
LocalDateTime plusNanos (long nanos)
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 30, 15, 123);
System.out.println(dateTime); // 2000-01-01T13:30:15.000000123
System.out.println(dateTime.plusNanos(1)); // 2000-01-01T13:30:15.000000124
System.out.println(dateTime.plusNanos(2)); // 2000-01-01T13:30:15.000000125
System.out.println(dateTime.plusNanos(1000000000L - 124)); // 2000-01-01T13:30:15.999999999
System.out.println(dateTime.plusNanos(1000000000L - 123)); // 2000-01-01T13:30:16
LocalDateTime plusSeconds (long seconds)
final var dateTime = LocalDateTime.of(2000, 1, 1, 13, 30, 15);
System.out.println(dateTime); // 2000-01-01T13:30:15
System.out.println(dateTime.plusSeconds(1)); // 2000-01-01T13:30:16
System.out.println(dateTime.plusSeconds(2)); // 2000-01-01T13:30:17
System.out.println(dateTime.plusSeconds(45)); // 2000-01-01T13:31
System.out.println(dateTime.plusSeconds(46)); // 2000-01-01T13:31:01
System.out.println(dateTime.plusSeconds(60 + 45)); // 2000-01-01T13:32
System.out.println(dateTime.plusSeconds(60 * 60)); // 2000-01-01T14:30:15
System.out.println(dateTime.plusSeconds(60 * 60 * 24)); // 2000-01-02T13:30:15
System.out.println(dateTime.plusSeconds(60 * 60 * 24 * 366)); // 2001-01-01T13:30:15
LocalDateTime plusWeeks (long weeks)
final var dateTime = LocalDateTime.of(2021, 5, 20, 0, 0);
System.out.println(dateTime); // 2021-05-20T00:00
System.out.println(dateTime.plusWeeks(1)); // 2021-05-27T00:00
System.out.println(dateTime.plusWeeks(2)); // 2021-06-03T00:00
System.out.println(dateTime.plusWeeks(20)); // 2021-10-07T00:00
System.out.println(dateTime.plusWeeks(100)); // 2023-04-20T00:00
final var dateTime = LocalDateTime.of(2008, 12, 31, 0, 0);
System.out.println(dateTime); // 2008-12-31T00:00
System.out.println(dateTime.plusWeeks(1)); // 2009-01-07T00:00
LocalDateTime plusYears (long years)
final var dateTime = LocalDateTime.of(2021, 5, 20, 0, 0);
System.out.println(dateTime); // 2021-05-20T00:00
System.out.println(dateTime.plusYears(1)); // 2022-05-20T00:00
System.out.println(dateTime.plusYears(2)); // 2023-05-20T00:00
System.out.println(dateTime.plusYears(10)); // 2031-05-20T00:00
final var dateTime = LocalDateTime.of(2008, 2, 29, 0, 0);
System.out.println(dateTime); // 2008-02-29T00:00
System.out.println(dateTime.plusYears(1)); // 2009-02-28T00:00
<R> R query (TemporalQuery<R> query)
final var dateTime = LocalDateTime.of(2021, 4, 14, 12, 30);
System.out.println(dateTime); // 2021-04-14T12:30
System.out.println(dateTime.query(TemporalQueries.localDate())); // 2021-04-14
System.out.println(dateTime.query(TemporalQueries.localTime())); // 12:30
System.out.println(dateTime.query(TemporalQueries.precision())); // Nanos
ValueRange range (TemporalField field)
final var dateTime = LocalDateTime.of(2021, 4, 14, 0, 0);
System.out.println(dateTime); // 2021-04-14T00:00
System.out.println(dateTime.range(ChronoField.YEAR)); // -999999999 - 999999999
System.out.println(dateTime.range(ChronoField.MONTH_OF_YEAR)); // 1 - 12
System.out.println(dateTime.range(ChronoField.DAY_OF_MONTH)); // 1 - 30
System.out.println(dateTime.range(ChronoField.HOUR_OF_DAY)); // 0 - 23
System.out.println(dateTime.range(ChronoField.MINUTE_OF_HOUR)); // 0 - 59
System.out.println(dateTime.range(ChronoField.SECOND_OF_MINUTE)); // 0 - 59
System.out.println(dateTime.range(ChronoField.NANO_OF_SECOND)); // 0 - 999999999
//dateTime.range(ChronoField.OFFSET_SECONDS); // UnsupportedTemporalTypeException
final var dateTime1 = LocalDateTime.of(1999, 2, 1, 0, 0);
System.out.println(dateTime1); // 1999-02-01T00:00
System.out.println(dateTime1.range(ChronoField.DAY_OF_MONTH)); // 1 - 28
final var dateTime2 = LocalDateTime.of(2000, 2, 1, 0, 0);
System.out.println(dateTime2); // 2000-02-01T00:00
System.out.println(dateTime2.range(ChronoField.DAY_OF_MONTH)); // 1 - 29
LocalDate toLocalDate ()
final var dateTime = LocalDateTime.of(2021, 4, 14, 12, 30, 45);
System.out.println(dateTime); // 2021-04-14T12:30:45
System.out.println(dateTime.toLocalDate()); // 2021-04-14
final var dateTime = LocalDateTime.of(1999, 1, 1, 0, 0);
System.out.println(dateTime); // 1999-01-01T00:00
System.out.println(dateTime.toLocalDate()); // 1999-01-01
final var dateTime = LocalDateTime.MAX;
System.out.println(dateTime); // +999999999-12-31T23:59:59.999999999
System.out.println(dateTime.toLocalDate()); // +999999999-12-31
final var dateTime = LocalDateTime.MIN;
System.out.println(dateTime); // -999999999-01-01T00:00
System.out.println(dateTime.toLocalDate()); // -999999999-01-01
LocalTime toLocalTime ()
final var dateTime = LocalDateTime.of(2021, 4, 14, 12, 30, 45);
System.out.println(dateTime); // 2021-04-14T12:30:45
System.out.println(dateTime.toLocalTime()); // 12:30:45
final var dateTime = LocalDateTime.of(1999, 1, 1, 0, 0);
System.out.println(dateTime); // 1999-01-01T00:00
System.out.println(dateTime.toLocalTime()); // 00:00
final var dateTime = LocalDateTime.MAX;
System.out.println(dateTime); // +999999999-12-31T23:59:59.999999999
System.out.println(dateTime.toLocalTime()); // 23:59:59.999999999
final var dateTime = LocalDateTime.MIN;
System.out.println(dateTime); // -999999999-01-01T00:00
System.out.println(dateTime.toLocalTime()); // 00:00
String toString ()
final var dateTime = LocalDateTime.of(2021, 4, 14, 12, 30, 45);
System.out.println(dateTime.toString()); // 2021-04-14T12:30:45
final var dateTime = LocalDateTime.of(2000, 12, 1, 23, 59);
System.out.println(dateTime.toString()); // 2000-12-01T23:59
final var dateTime1 = LocalDateTime.of(1999, 1, 1, 0, 0, 0, 123000000);
System.out.println(dateTime1.toString()); // 1999-01-01T00:00:00.123
final var dateTime2 = LocalDateTime.of(1999, 1, 1, 0, 0, 0, 123000);
System.out.println(dateTime2.toString()); // 1999-01-01T00:00:00.000123
final var dateTime3 = LocalDateTime.of(1999, 1, 1, 0, 0, 0, 123);
System.out.println(dateTime3.toString()); // 1999-01-01T00:00:00.000000123
final var dateTime = LocalDateTime.MAX;
System.out.println(dateTime.toString()); // +999999999-12-31T23:59:59.999999999
final var dateTime = LocalDateTime.MIN;
System.out.println(dateTime.toString()); // -999999999-01-01T00:00
LocalDateTime truncatedTo (TemporalUnit unit)
final var dateTime = LocalDateTime.of(2021, 4, 14, 12, 30, 15, 123456789);
System.out.println(dateTime); // 2021-04-14T12:30:15.123456789
System.out.println(dateTime.truncatedTo(ChronoUnit.DAYS)); // 2021-04-14T00:00
System.out.println(dateTime.truncatedTo(ChronoUnit.HOURS)); // 2021-04-14T12:00
System.out.println(dateTime.truncatedTo(ChronoUnit.MINUTES)); // 2021-04-14T12:30
System.out.println(dateTime.truncatedTo(ChronoUnit.SECONDS)); // 2021-04-14T12:30:15
System.out.println(dateTime.truncatedTo(ChronoUnit.NANOS)); // 2021-04-14T12:30:15.123456789
//dateTime.truncatedTo(ChronoUnit.YEARS); // UnsupportedTemporalTypeException
//dateTime.truncatedTo(ChronoUnit.MONTHS); // UnsupportedTemporalTypeException
long until (Temporal endExclusive, TemporalUnit unit)
final var dateTime1 = LocalDateTime.of(2000, 1, 1, 0, 0);
final var dateTime2 = LocalDateTime.of(2001, 2, 2, 0, 0);
System.out.println(dateTime1); // 2000-01-01T00:00
System.out.println(dateTime2); // 2001-02-02T00:00
System.out.println(dateTime1.until(dateTime2, ChronoUnit.YEARS)); // 1
System.out.println(dateTime1.until(dateTime2, ChronoUnit.MONTHS)); // 13
System.out.println(dateTime1.until(dateTime2, ChronoUnit.DAYS)); // 398
System.out.println(dateTime1.until(dateTime2, ChronoUnit.HOURS)); // 9552
System.out.println(dateTime1.until(dateTime2, ChronoUnit.MINUTES)); // 573120
System.out.println(dateTime1.until(dateTime2, ChronoUnit.SECONDS)); // 34387200
System.out.println(dateTime1.until(dateTime2, ChronoUnit.NANOS)); // 34387200000000000
final var dateTime1 = LocalDateTime.of(2000, 1, 1, 1, 2);
final var dateTime2 = LocalDateTime.of(2000, 1, 1, 3, 32, 15, 123);
System.out.println(dateTime1); // 2000-01-01T01:02
System.out.println(dateTime2); // 2000-01-01T03:32:15.000000123
System.out.println(dateTime1.until(dateTime2, ChronoUnit.YEARS)); // 0
System.out.println(dateTime1.until(dateTime2, ChronoUnit.MONTHS)); // 0
System.out.println(dateTime1.until(dateTime2, ChronoUnit.DAYS)); // 0
System.out.println(dateTime1.until(dateTime2, ChronoUnit.HOURS)); // 2
System.out.println(dateTime1.until(dateTime2, ChronoUnit.MINUTES)); // 150
System.out.println(dateTime1.until(dateTime2, ChronoUnit.SECONDS)); // 9015
System.out.println(dateTime1.until(dateTime2, ChronoUnit.NANOS)); // 9015000000123
final var dateTime1 = LocalDateTime.of(2012, 8, 14, 0, 0);
final var dateTime2 = LocalDateTime.of(2012, 6, 15, 0, 0);
System.out.println(dateTime1); // 2012-08-14T00:00
System.out.println(dateTime2); // 2012-06-15T00:00
System.out.println(dateTime1.until(dateTime2, ChronoUnit.YEARS)); // 0
System.out.println(dateTime1.until(dateTime2, ChronoUnit.MONTHS)); // -1
System.out.println(dateTime1.until(dateTime2, ChronoUnit.DAYS)); // -60
System.out.println(dateTime1.until(dateTime2, ChronoUnit.HOURS)); // -1440
System.out.println(dateTime1.until(dateTime2, ChronoUnit.MINUTES)); // -86400
System.out.println(dateTime1.until(dateTime2, ChronoUnit.SECONDS)); // -5184000
System.out.println(dateTime1.until(dateTime2, ChronoUnit.NANOS)); // -5184000000000000
LocalDateTime with (TemporalAdjuster adjuster)
final var dateTime = LocalDateTime.of(2021, 2, 15, 0, 0);
System.out.println(dateTime); // 2021-02-15T00:00
System.out.println(dateTime.with(TemporalAdjusters.firstDayOfMonth())); // 2021-02-01T00:00
System.out.println(dateTime.with(TemporalAdjusters.lastDayOfMonth())); // 2021-02-28T00:00
final var dateTime = LocalDateTime.of(2021, 4, 14, 12, 30);
System.out.println(dateTime); // 2021-04-14T12:30
System.out.println(dateTime.with(Year.of(1999))); // 1999-04-14T12:30
System.out.println(dateTime.with(Month.JANUARY)); // 2021-01-14T12:30
System.out.println(dateTime.with(LocalTime.MAX)); // 2021-04-14T23:59:59.999999999
System.out.println(dateTime.with(LocalDate.MIN)); // -999999999-01-01T12:30
LocalDateTime with (TemporalField field, long newValue)
final var dateTime = LocalDateTime.of(2020, 1, 2, 12, 30, 45, 123);
System.out.println(dateTime); // 2020-01-02T12:30:45.000000123
System.out.println(dateTime.with(ChronoField.YEAR, 1999)); // 1999-01-02T12:30:45.000000123
System.out.println(dateTime.with(ChronoField.MONTH_OF_YEAR, 12)); // 2020-12-02T12:30:45.000000123
System.out.println(dateTime.with(ChronoField.DAY_OF_MONTH, 30)); // 2020-01-30T12:30:45.000000123
System.out.println(dateTime.with(ChronoField.HOUR_OF_DAY, 23)); // 2020-01-02T23:30:45.000000123
System.out.println(dateTime.with(ChronoField.MINUTE_OF_HOUR, 59)); // 2020-01-02T12:59:45.000000123
System.out.println(dateTime.with(ChronoField.SECOND_OF_MINUTE, 0)); // 2020-01-02T12:30:00.000000123
System.out.println(dateTime.with(ChronoField.NANO_OF_SECOND, 456)); // 2020-01-02T12:30:45.000000456
LocalDateTime withDayOfMonth (int dayOfMonth)
final var dateTime = LocalDateTime.of(2021, 4, 8, 0, 0);
System.out.println(dateTime); // 2021-04-08T00:00
System.out.println(dateTime.withDayOfMonth(1)); // 2021-04-01T00:00
System.out.println(dateTime.withDayOfMonth(2)); // 2021-04-02T00:00
System.out.println(dateTime.withDayOfMonth(29)); // 2021-04-29T00:00
System.out.println(dateTime.withDayOfMonth(30)); // 2021-04-30T00:00
LocalDateTime withDayOfYear (int dayOfYear)
final var dateTime = LocalDateTime.of(2000, 4, 8, 12, 30);
System.out.println(dateTime); // 2000-04-08T12:30
System.out.println(dateTime.withDayOfYear(1)); // 2000-01-01T12:30
System.out.println(dateTime.withDayOfYear(2)); // 2000-01-02T12:30
System.out.println(dateTime.withDayOfYear(30)); // 2000-01-30T12:30
System.out.println(dateTime.withDayOfYear(31)); // 2000-01-31T12:30
System.out.println(dateTime.withDayOfYear(32)); // 2000-02-01T12:30
System.out.println(dateTime.withDayOfYear(33)); // 2000-02-02T12:30
System.out.println(dateTime.withDayOfYear(365)); // 2000-12-30T12:30
LocalDateTime withHour (int hour)
final var dateTime = LocalDateTime.of(2000, 1, 1, 12, 30);
System.out.println(dateTime); // 2000-01-01T12:30
System.out.println(dateTime.withHour(0)); // 2000-01-01T00:30
System.out.println(dateTime.withHour(23)); // 2000-01-01T23:30
LocalDateTime withMinute (int minute)
final var dateTime = LocalDateTime.of(2000, 1, 1, 12, 30);
System.out.println(dateTime); // 2000-01-01T12:30
System.out.println(dateTime.withMinute(0)); // 2000-01-01T12:00
System.out.println(dateTime.withMinute(59)); // 2000-01-01T12:59
LocalDateTime withMonth (int month)
final var dateTime = LocalDateTime.of(2000, 4, 8, 12, 30);
System.out.println(dateTime); // 2000-04-08T12:30
System.out.println(dateTime.withMonth(1)); // 2000-01-08T12:30
System.out.println(dateTime.withMonth(2)); // 2000-02-08T12:30
System.out.println(dateTime.withMonth(11)); // 2000-11-08T12:30
System.out.println(dateTime.withMonth(12)); // 2000-12-08T12:30
LocalDateTime withNano (int nanoOfSecond)
final var dateTime = LocalDateTime.of(2000, 1, 1, 0, 0, 0, 123);
System.out.println(dateTime); // 2000-01-01T00:00:00.000000123
System.out.println(dateTime.withNano(0)); // 2000-01-01T00:00
System.out.println(dateTime.withNano(999999999)); // 2000-01-01T00:00:00.999999999
LocalDateTime withSecond (int second)
final var dateTime = LocalDateTime.of(2000, 1, 1, 12, 30, 45);
System.out.println(dateTime); // 2000-01-01T12:30:45
System.out.println(dateTime.withSecond(0)); // 2000-01-01T12:30
System.out.println(dateTime.withSecond(1)); // 2000-01-01T12:30:01
System.out.println(dateTime.withSecond(59)); // 2000-01-01T12:30:59
LocalDateTime withYear (int year)
final var dateTime = LocalDateTime.of(2000, 4, 8, 12, 30);
System.out.println(dateTime); // 2000-04-08T12:30
System.out.println(dateTime.withYear(1999)); // 1999-04-08T12:30
System.out.println(dateTime.withYear(-999)); // -0999-04-08T12:30
System.out.println(dateTime.withYear(2030)); // 2030-04-08T12:30
Methods declared in ChronoLocalDateTime
Chronology getChronology ()
final var dateTime = LocalDateTime.of(2021, 4, 14, 0, 0);
System.out.println(dateTime); // 2021-04-14T00:00
System.out.println(dateTime.getChronology()); // ISO
long toEpochSecond (ZoneOffset offset)
final var dateTime = LocalDateTime.of(2021, 4, 8, 12, 30);
System.out.println(dateTime); // 2021-04-08T12:30
final long epochSecond1 = dateTime.toEpochSecond(ZoneOffset.UTC);
System.out.println(epochSecond1); // 1617885000
System.out.println(Instant.ofEpochSecond(epochSecond1)); // 2021-04-08T12:30:00Z
final long epochSecond2 = dateTime.toEpochSecond(ZoneOffset.ofHours(9));
System.out.println(epochSecond2); // 1617852600
System.out.println(Instant.ofEpochSecond(epochSecond2)); // 2021-04-08T03:30:00Z
Instant toInstant (ZoneOffset offset)
final var dateTime = LocalDateTime.of(2021, 4, 8, 12, 30);
System.out.println(dateTime); // 2021-04-08T12:30
final var instant1 = dateTime.toInstant(ZoneOffset.UTC);
System.out.println(instant1); // 2021-04-08T12:30:00Z
final var instant2 = dateTime.toInstant(ZoneOffset.ofHours(9));
System.out.println(instant2); // 2021-04-08T03:30:00Z
Related posts
- Get the current time
- Basics of Date and Time
- Don't use the legacy Date and Calendar classes, use new APIs instead
- API Examples
- Calendar
- ChronoLocalDate
- Clock
- Date
- DateTimeException
- DateTimeParseException
- DayOfWeek
- Duration
- Era
- Instant
- InstantSource
- JapaneseDate
- LocalDate
- LocalTime
- Month
- MonthDay
- OffsetDateTime
- OffsetTime
- Period
- Temporal
- TemporalAccessor
- TemporalAdjuster
- TemporalAdjusters
- TimeZone
- Year
- YearMonth
- ZonedDateTime
- ZoneId
- ZoneOffset