JDK8时间工具类

  • 2019 年 10 月 8 日
  • 筆記

JDK8添加了java.time包,提供了很多方便。 用得比较多的几个类: Instant 在时间线上模拟单个瞬时点 Duration 以秒和纳秒为单位模拟一个数量或时间量。可以使用其他基于持续时间的单位访问它,例如分钟和小时 LocalDate 表示ISO-8601日历系统中没有时区的日期,例如 2019-03-31 LocalTime 表示ISO-8601日历系统中没有时区的时间,例如 16:50:30 LocalDateTime 表示ISO-8601日历系统中没有时区的日期时间,例如 2019-03-31T10:15:30 其中一些方法使用如下:

public static void main(String[] args) {          //2019-03-31          LocalDate localDate = LocalDate.now();          System.out.println(localDate);          // 15:56:36.232          LocalTime localTime = LocalTime.now();          System.out.println(localTime);          // 2019-03-31T15:56:36.233          LocalDateTime localDateTime = LocalDateTime.now();          System.out.println(localDateTime);          // 2019-03-31T07:56:36.233Z          Instant instant = Instant.now();          System.out.println(instant);          // 获取当前的时间戳(毫秒)          long instantMilli = instant.toEpochMilli();          System.out.println(instantMilli);          // 一个小时后的时间=加了一个小时时间          Instant plus1Hours = instant.plus(1, ChronoUnit.HOURS);          // 计算两个时间之间的时间量          long until = instant.until(plus1Hours, ChronoUnit.SECONDS);          System.out.println(until);          // 一个小时前的时间=减了一个小时          Instant minus1Hours = instant.minus(1, ChronoUnit.HOURS);          System.out.println(minus1Hours);          // Instant转换成java.util.Date类型          Date date = Date.from(instant);          System.out.println(date);          // java.util.Date转换成Instant类型          Instant dateInstant = date.toInstant();          System.out.println(dateInstant);          // 当天开始时间          LocalDateTime start = LocalDateTime.of(localDate, LocalTime.MIN);          // 当天结束时间          LocalDateTime end = LocalDateTime.of(localDate, LocalTime.MAX);          System.out.println(start);          System.out.println(end);          // 计算两个时间之间的时间量度          Duration duration = Duration.between(start, end);          System.out.println(duration.toDays());          System.out.println(duration.toHours());          System.out.println(duration.toMinutes());          System.out.println(duration.toMillis());          System.out.println(duration.getSeconds());          // 格式化初始指定时间          System.out.println(LocalDateTime.parse("2019-03-01 11:10:12", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));      }