• java.time包常用类API学习记录


    Java8出来已那么多年了,java.time包之前一直没有使用过,最近正好有用到,在此做个记录。

     

    上图列出了java.time包下的类,接下来我们详细看下其中每个类的用法。

    Clock:获取到当前时间点,包含时区信息,该类是抽象类,其实现类由其内部类实现,也可以自定义其实现类。

    Clock方法描述:

    • getZone():获取创建日期时间的时区;
    • withZone(ZoneId zone):返回一个指定时区clock副本;
    • instant():返回instant实例;
    • millis():获取当前instant实例toEpochMilli()返回毫秒;
    import java.time.Clock;
    import java.time.Instant;
    import java.time.ZoneId;
    
    public class ClockDemo {    
        
        public static void main(String[] args) {
            systemClock();
        }
        
        public static void systemClock() {
            ZoneId zoneIdParam = ZoneId.of("Asia/Tokyo");
            // 获取UTC时区clock实例
            Clock clock = Clock.systemUTC();
            System.out.println("************UTC************");
            descriptionClock(clock, zoneIdParam);
            
            // 获取默认时区
            System.out.println("************default zone************");
            clock = Clock.systemDefaultZone();
            descriptionClock(clock, zoneIdParam);
            
            // 指定时区
            ZoneId zoneId = ZoneId.of("Asia/Yerevan");
            System.out.println("************specific zone************");
            clock = Clock.system(zoneId);
            descriptionClock(clock, zoneIdParam);
        }
        
        public static void descriptionClock(Clock clock, ZoneId zoneIdParam) {
            System.out.println("************begin************");
            displayInfo(clock);
            
            clock = clock.withZone(zoneIdParam);
            System.out.println("************change zone*************");
            displayInfo(clock);
            System.out.println("************end**************");
        }
        
        private static void displayInfo(Clock clock) {
            ZoneId zoneId = clock.getZone();
            System.out.println("当前时区:" + zoneId.getId());
            Instant instant = clock.instant();
            System.out.println("当前时间(ISO-8601):" + instant);
            long currentTime = clock.millis();
            System.out.println("当前时间毫秒:" + currentTime);
        }
    }
    ************UTC************
    ************begin************
    当前时区:Z
    当前时间(ISO-8601):2019-09-28T08:58:42.802Z
    当前时间毫秒:1569661122869
    ************change zone*************
    当前时区:Asia/Tokyo
    当前时间(ISO-8601):2019-09-28T08:58:42.869Z
    当前时间毫秒:1569661122869
    ************end**************
    ************default zone************
    ************begin************
    当前时区:Asia/Shanghai
    当前时间(ISO-8601):2019-09-28T08:58:42.873Z
    当前时间毫秒:1569661122873
    ************change zone*************
    当前时区:Asia/Tokyo
    当前时间(ISO-8601):2019-09-28T08:58:42.873Z
    当前时间毫秒:1569661122873
    ************end**************
    ************specific zone************
    ************begin************
    当前时区:Asia/Yerevan
    当前时间(ISO-8601):2019-09-28T08:58:42.874Z
    当前时间毫秒:1569661122874
    ************change zone*************
    当前时区:Asia/Tokyo
    当前时间(ISO-8601):2019-09-28T08:58:42.874Z
    当前时间毫秒:1569661122874
    ************end**************

     未完待续

  • 相关阅读:
    【问题解决方案】计算机中缺少vcruntime140d.dll
    【学习总结】SQL的学习-1-初识数据库与sql
    【学习总结】SQL的学习-汇总
    【刷题】面筋-测开-软件测试与软件开发的对比
    【刷题】面筋-测开-软件测试岗位的理解+职业规划
    【刷题】面筋-测开-软件测试概述/对测试的理解
    【刷题】面筋-网络-HTTP中get和post对比
    【刷题】面筋-网络-HTTP的请求类型和状态码
    【学习总结】HTTP的几种请求类型和状态码解释
    【刷题】面筋-测开-微波炉测试用例
  • 原文地址:https://www.cnblogs.com/yixiu868/p/11603834.html
Copyright © 2020-2023  润新知