zoukankan      html  css  js  c++  java
  • Java 日期时间与unix时间戳之间转换

    日期时间  <-->  时间戳

    java.time 包提供的新的日期和时间API

    LocalDateTime: 本地日期时间类

    ZoneId: 时区类

    ZonedDateTime: 带时区的日期时间类

    Instant: 高精度时间戳

    long: 长整型

    LocalDateTime + ZoneId = ZonedDateTime

    import java.time.LocalDateTime;
    import java.time.ZoneId;
    import java.time.ZonedDateTime;
    
    public class Main {
        public static void main(String[] args) {
            // 直接获取 ZonedDateTime 对象
            ZonedDateTime zdt1 = ZonedDateTime.now();
            System.out.println(zdt1);
    
            // LocalDateTime + ZoneId = ZonedDateTime
            LocalDateTime ldt = LocalDateTime.now();
            ZonedDateTime zdt2 = ldt.atZone(ZoneId.systemDefault());
            System.out.println(zdt2);
        }
    }
    
    运行结果:
    2019-10-29T14:01:16.169741500+08:00[Asia/Shanghai]
    2019-10-29T14:01:16.170744+08:00[Asia/Shanghai]

    ZonedDateTime --> LocalDateTime

    import java.time.LocalDateTime;
    import java.time.ZonedDateTime;
    
    public class Main {
        public static void main(String[] args) {
            // 直接获取 ZonedDateTime 对象
            ZonedDateTime zdt = ZonedDateTime.now();
            System.out.println(zdt);
    
            //转换为LocalDateTime时,直接丢弃了时区信息
            LocalDateTime ldt = zdt.toLocalDateTime();
            System.out.println(ldt);
        }
    }
    
    运行结果:
    2019-10-29T14:00:13.876198+08:00[Asia/Shanghai]
    2019-10-29T14:00:13.876198

    ZonedDateTime -->  Instant  -->  long

    import java.time.Instant;
    import java.time.ZonedDateTime;
    
    public class Main {
        public static void main(String[] args) {
            // 直接获取 ZonedDateTime 对象
            ZonedDateTime zdt = ZonedDateTime.now();
            System.out.println(zdt);
            // to Instants
            Instant ins = zdt.toInstant();
            System.out.println(ins);
            // to long
            System.out.println(ins.toEpochMilli());
        }
    }
    
    运行结果:
    2019-10-29T14:11:00.265786900+08:00[Asia/Shanghai]
    2019-10-29T06:11:00.265786900Z
    1572329460265

    long  -->  Instant  -->  ZonedDateTime

    import java.time.Instant;
    import java.time.ZoneId;
    import java.time.ZonedDateTime;
    
    public class Main {
        public static void main(String[] args) {
            // 获取 unix 毫秒值
            long insMilli = Instant.now().toEpochMilli();
            System.out.println(insMilli);
    
            // to Instant
            Instant ins = Instant.ofEpochMilli(insMilli);
            // to ZonedDateTime
            ZonedDateTime zdt = ZonedDateTime.ofInstant(ins, ZoneId.systemDefault());
            System.out.println(zdt);
        }
    }
    
    运行结果:
    1572330350986
    2019-10-29T14:25:50.986+08:00[Asia/Shanghai]

    ending ~

    每天都要遇到更好的自己.
  • 相关阅读:
    39门课程。加油!学长只能帮你到这里了!
    联邦企业架构之CIO委员会的企业架构实施指南(上)
    RTEMS 进程切换分析
    styleCop使用介绍和Fxcop使用参考
    获得Web目录URL
    HelloWorld demo
    第一个C语言程序
    文件分布式存储方案
    Linux常用指令别名、输入/输出重定向、管道、命令连接符、命令替换符
    JavaEE项目问题总结
  • 原文地址:https://www.cnblogs.com/kaichenkai/p/11757931.html
Copyright © 2011-2022 走看看