首页 > 解决方案 > 从 LocalDateTime Java 8 获取 UTC java.uti.Date

问题描述

我需要将 LocalDateTime 转换为 UTC 日期,这是我的代码

    LocalDateTime ldt = LocalDateTime.now();
    System.out.println("Local date Time " +ldt);

    ZonedDateTime ldtZoned = ldt.atZone(ZoneId.systemDefault());

    ZonedDateTime utcZoned = ldtZoned.withZoneSameInstant(ZoneOffset.UTC);

    System.out.println("UTC Zone"+utcZoned);

    Instant i = utcZoned.toInstant();
    System.out.println("Instant "+i);
    Date out = Date.from(i);
    System.out.println("date from Instant "+ out);

输出为

Local date Time 2019-05-08T16:23:53.109
UTC Zone2019-05-08T22:23:53.109Z
Instant 2019-05-08T22:23:53.109Z
date from Instant Wed May 08 16:23:53 MDT 2019

直到第三条陈述一切都很好。但是当我们从 Instant 获取 Date 对象时,它会将 Date 对象转换回本地时间。

我们如何从 LocaldateTime 获取 Date 对象作为 UTC?

标签: javadatetimejava-8zoneddatetime

解决方案


推荐阅读