asp图片源码网站,网站集成微信登录,杭州点餐app开发,aws 知乎 wordpressJava8 时间日期类操作Java8的时间类有两个重要的特性线程安全不可变类#xff0c;返回的都是新的对象显然#xff0c;该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全的问题。同时Java8的时间类提供了诸多内置方法#xff0c;方便了对时间进行相应的操作。上…Java8 时间日期类操作Java8的时间类有两个重要的特性线程安全不可变类返回的都是新的对象显然该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全的问题。同时Java8的时间类提供了诸多内置方法方便了对时间进行相应的操作。上图为Java8时间类的覆盖范围相关的类有LocalDateLocalTimeLocalDateTimeZoneIdZonedDateTimeInstantInstant类Instant类用来表示格林威治时间(UTC)开始的时间点初始时间为1970-01-01T00:00:00Z。也就是从1970年一月一号开始计时得到的秒值甚至是是纳秒值。该时间戳可以与日期时间转换。因此可以表示人类世界最完整的时间。该类相比原来java.util.Date类精确到了纳秒级别。获取当前的秒值和纳秒值Instant instant Instant.now();System.out.println(instant);System.out.println(instant.getEpochSecond());System.out.println(instant.getNano());结果如下2019-08-28T07:59:54.979Z1566979194979000000将指定秒值转为Instant。Instant.ofEpochSecond()方法。Instant instant1 Instant.ofEpochSecond(1566981233L);System.out.println(instant1);LocalDate、LocalTime、LocalDateTime、ZonedDateTimeJava8使用LocalDate、LocalTime、LocalDateTime、ZonedDateTime分别操作日期、时间、日期和时间。这四个类的默认使用系统时区获取当天日期及时间LocalDate today LocalDate.now();System.out.println(today);LocalDateTime localDateTime LocalDateTime.now();System.out.println(localDateTime);LocalTime localTime LocalTime.now();System.out.println(localTime);ZonedDateTime zonedDateTime ZonedDateTime.now();System.out.println(zonedDateTime);ZoneId zoneId ZoneId.systemDefault();System.out.println(zoneId);结果如下2019-08-282019-08-28T17:42:01.96417:42:01.9652019-08-28T17:42:01.96508:00[Asia/Shanghai]Asia/Shanghai指定日期2019-09-30并通过isBefore()判断是否今天在指定日期之前LocalDate future LocalDate.of(2019, 9, 30);boolean before today.isBefore(future);System.out.println(before);LocalDateTime转String 通过DateTimeFormatter指定转换格式String formatStr localDateTime.format(DateTimeFormatter.ofPattern(yyyy-MM-dd hh:mm:ss));System.out.println(formatStr);String转为LocalDateString str 2019-01-02;LocalDate localDate2 LocalDate.parse(str, DateTimeFormatter.ofPattern(yyyy-MM-dd));System.out.println(localDate2);LocalDateTime与Instant的互相转换获取当天的秒值和毫秒值。LocalDateTime转Instant获取时间戳。由于LocalDateTime并没有包含时区转为Instant需要指明所在时区。北京时间也就是东八区ZoneOffset.of(8)long milliSecond LocalDateTime.now().toInstant(ZoneOffset.of(8)).toEpochMilli();System.out.println(milliSecond);long second LocalDateTime.now().toEpochSecond(ZoneOffset.of(8));System.out.println(second);Instant时间戳转LocalDateTime。使用LocalDateTime.ofInstant方法需要指定转换为哪个时区的时间LocalDateTime localDateTime2 LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()); //使用系统默认时间System.out.println(localDateTime2);结果如下2019-08-28T16:33:53.639参考文章