Java : LocalDateTime with Examples

LocalDateTime (Java SE 18 & JDK 18) with Examples.
You will find code examples on most LocalDateTime methods.


Summary

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

Class diagram

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

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

System.out.println(LocalDateTime.MAX); // +999999999-12-31T23:59:59.999999999

static final LocalDateTime MIN

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

System.out.println(LocalDateTime.MIN); // -999999999-01-01T00:00

Methods

Temporal adjustInto (Temporal temporal)

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

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)

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

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)

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

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)

Compares this date-time to another date-time.

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)

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

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)

Formats this date-time using the specified 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)

Obtains an instance of LocalDateTime from a temporal object.

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)

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

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 ()

Gets the day-of-month field.

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 ()

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

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 ()

Gets the day-of-year field.

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 ()

Gets the hour-of-day field.

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)

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

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 ()

Gets the minute-of-hour field.

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 ()

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

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 ()

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

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 ()

Gets the nano-of-second field.

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 ()

Gets the second-of-minute field.

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 ()

Gets the year field.

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 ()

A hash code for this date-time.

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)

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

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)

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

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)

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

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)

Checks if the specified field is supported.

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)

Checks if the specified unit is supported.

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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 ()

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

System.out.println(LocalDateTime.now()); // 2021-04-14T13:53:02.356109600

static LocalDateTime now (Clock clock)

Obtains the current date-time from the specified 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)

Obtains the current date-time from the system clock in the specified time-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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

Obtains an instance of LocalDateTime from a date and 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)

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

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)

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

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)

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

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)

Obtains an instance of LocalDateTime from a text string using a specific 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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

Queries this date-time using the specified 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)

Gets the range of valid values for the specified 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 ()

Gets the LocalDate part of this date-time.

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 ()

Gets the LocalTime part of this date-time.

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 ()

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

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)

Returns a copy of this LocalDateTime with the time truncated.

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)

Calculates the amount of time until another date-time in terms of the specified 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)

Returns an adjusted copy of this date-time.

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

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

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)

Returns a copy of this LocalDateTime with the year altered.

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 ()

Gets the chronology of this date-time.

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)

Converts this date-time to the number of seconds from the epoch of 1970-01-01T00:00:00Z.

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)

Converts this date-time to an Instant.

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

To top of page