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 ~

    每天都要遇到更好的自己.
  • 相关阅读:
    VIM 第二天--快捷键
    Vim 第一天
    The Salt Master has cached the public key报错解决办法
    nginx启用TCP反向代理日志配置
    FastDFS数据迁移
    nginx修改上传文件大小限制
    ipv6禁用导致rpcbind服务启动失败解决办法
    ELK之elasticdump迁移es数据
    MySQL+Amoeba实现数据库读写分离
    使用Zabbix监控RabbitMQ消息队列
  • 原文地址:https://www.cnblogs.com/kaichenkai/p/11757931.html
Copyright © 2011-2022 走看看