java 8 中的日期时间API

       java 8中除了Lambda表达式,Stream流等新特性,还有新的日期时间API,为什么会引入新的日期处理API呢?旧的日期处理类,线程不安全,而且对于时区处理起来非常的麻烦。因此java 8 在java.time包下增加了很多新的API,主要包括Local(本地,简化了日期时间的处理,没有时区的问题)和Zoned(时区,通过制定的时区处理日期时间)。

具体怎么用,简单举几个例子吧。

        //本地API
        LocalDateTime currentime = LocalDateTime.now();
        System.out.println("当前时间:"+currentime);
        LocalDate date1 = currentime.toLocalDate();
        System.out.println("当前日期的年月日:"+ date1);
        LocalTime time1 = currentime.toLocalTime();
        System.out.println("当前日期的时分秒:"+time1);
        LocalDateTime updateDate = currentime.withDayOfMonth(10).withMonth(9).withYear(2018);
        System.out.println("修改后的日期:"+updateDate);

        LocalDate date2 = LocalDate.of(2017,Month.DECEMBER,12);
        System.out.println("自定义一个日期:"+date2);

        LocalTime time2 = LocalTime.of(12,34,56);
        System.out.println("自定义时分秒:"+time2);

        LocalTime time3 = LocalTime.parse("10:23:45");
        System.out.println("字符串转换为时间:"+time3);

        //时区API
        ZonedDateTime zoneDate = ZonedDateTime.now();
        System.out.println("带有时区的日期:"+zoneDate);
        ZoneId id = ZoneId.systemDefault();
        System.out.println("获取默认时区:"+id);

        ZoneId updateId = ZoneId.of("Europe/Paris");
        System.out.println("自定义时区:"+updateId);

        结果:
        当前时间:2020-08-17T22:31:21.686
        当前日期的年月日:2020-08-17
        当前日期的时分秒:22:31:21.686
        修改后的日期:2018-09-10T22:31:21.686
        自定义一个日期:2017-12-12
        自定义时分秒:12:34:56
        字符串转换为时间:10:23:45
        带有时区的日期:2020-08-17T22:31:21.706+08:00[Asia/Shanghai]
        获取默认时区:Asia/Shanghai
        自定义时区:Europe/Paris

有关日期的方法还有很多,就不一一举例了,大家可以自己看源码学习。

猜你喜欢

转载自blog.csdn.net/wzs535131/article/details/108066430