LocalDateTime工具-LocalDateTimeUtil

介绍

从Hutool的5.4.x开始,Hutool加入了针对JDK8+日期API的封装,此工具类的功能包括LocalDateTimeLocalDate的解析、格式化、转换等操作。

使用

  1. 日期转换
  1. String dateStr = "2020-01-23T12:23:56";
  2. DateTime dt = DateUtil.parse(dateStr);
  3. // Date对象转换为LocalDateTime
  4. LocalDateTime of = LocalDateTimeUtil.of(dt);
  5. // 时间戳转换为LocalDateTime
  6. of = LocalDateTimeUtil.ofUTC(dt.getTime());
  1. 日期字符串解析
  1. // 解析ISO时间
  2. LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
  3. // 解析自定义格式时间
  4. localDateTime = LocalDateTimeUtil.parse("2020-01-23", DatePattern.NORM_DATE_PATTERN);

解析同样支持LocalDate

  1. LocalDate localDate = LocalDateTimeUtil.parseDate("2020-01-23");
  2. // 解析日期时间为LocalDate,时间部分舍弃
  3. localDate = LocalDateTimeUtil.parseDate("2020-01-23T12:23:56", DateTimeFormatter.ISO_DATE_TIME);
  1. 日期格式化
  1. LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
  2. // "2020-01-23 12:23:56"
  3. String format = LocalDateTimeUtil.format(localDateTime, DatePattern.NORM_DATETIME_PATTERN);
  1. 日期偏移
  1. final LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
  2. // 增加一天
  3. // "2020-01-24T12:23:56"
  4. LocalDateTime offset = LocalDateTimeUtil.offset(localDateTime, 1, ChronoUnit.DAYS);

如果是减少时间,offset第二个参数传负数即可:

  1. // "2020-01-22T12:23:56"
  2. offset = LocalDateTimeUtil.offset(localDateTime, -1, ChronoUnit.DAYS);
  1. 计算时间间隔
  1. LocalDateTime start = LocalDateTimeUtil.parse("2019-02-02T00:00:00");
  2. LocalDateTime end = LocalDateTimeUtil.parse("2020-02-02T00:00:00");
  3. Duration between = LocalDateTimeUtil.between(start, end);
  4. // 365
  5. between.toDays();
  1. 一天的开始和结束
  1. LocalDateTime localDateTime = LocalDateTimeUtil.parse("2020-01-23T12:23:56");
  2. // "2020-01-23T00:00"
  3. LocalDateTime beginOfDay = LocalDateTimeUtil.beginOfDay(localDateTime);
  4. // "2020-01-23T23:59:59.999999999"
  5. LocalDateTime endOfDay = LocalDateTimeUtil.endOfDay(localDateTime);