LocalDateTimeUtil
Introduction
Starting from Hutool 5.4.x, Hutool includes a wrapper API for the JDK8+ date API. This utility class provides functions for parsing, formatting, and converting LocalDateTime
and LocalDate
objects.
Usage
- Date conversion
String dateStr = "2020-01-23T12:23:56";
DateTime dt = DateUtil.parse(dateStr);
// Convert Date object to LocalDateTime
LocalDateTime of = LocalDateTimeUtil.of(dt);
// Convert timestamp to LocalDateTime
of = LocalDateTimeUtil.ofUTC(dt.getTime());
- Date string parsing
// Parse ISO time
LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
// Parse custom format time
localDateTime = LocalDateTimeUtil.parse("2020-01-23", DatePattern.NORM_DATE_PATTERN);
Parsing also supports LocalDate
:
LocalDate localDate = LocalDateTimeUtil.parseDate("2020-01-23");
// Parse date time to LocalDate and discard time part
localDate = LocalDateTimeUtil.parseDate("2020-01-23T12:23:56", DateTimeFormatter.ISO_DATE_TIME);
- Date formatting
LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
// "2020-01-23 12:23:56"
String format = LocalDateTimeUtil.format(localDateTime, DatePattern.NORM_DATETIME_PATTERN);
- Date offsetting
final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
// Add one day
// "2020-01-24T12:23:56"
LocalDateTime offset = LocalDateTimeUtil.offset(localDateTime, 1, ChronoUnit.DAYS);
If reducing the time, pass a negative number as the second parameter to offset:
// "2020-01-22T12:23:56"
offset = LocalDateTimeUtil.offset(localDateTime, -1, ChronoUnit.DAYS);
- Calculate the time interval
LocalDateTime start = LocalDateTimeUtil.parse("2019-02-02T00:00:00");
LocalDateTime end = LocalDateTimeUtil.parse("2020-02-02T00:00:00");
Duration between = LocalDateTimeUtil.between(start, end);
// 365
between.toDays();
- The beginning and end of a day
LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
// "2020-01-23T00:00"
LocalDateTime beginOfDay = LocalDateTimeUtil.beginOfDay(localDateTime);
// "2020-01-23T23:59:59.999999999"
LocalDateTime endOfDay = LocalDateTimeUtil.endOfDay(localDateTime);