zoukankan      html  css  js  c++  java
  • 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**************

     未完待续

  • 相关阅读:
    TransactionScop事务机制的使用
    MVC无刷新上传图片并显示
    WebClient和WebRequest获取html代码
    Web.config配置详解
    分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员?
    有序二维数组的查找
    生成Excel.xlsx文件 iOS
    charles Https抓包
    https 通信流程和Charles 抓包原理
    fastlane自动化打包ipa并发布到firim或者蒲公英
  • 原文地址:https://www.cnblogs.com/yixiu868/p/11603834.html
Copyright © 2011-2022 走看看