EpochSeconds from jdk8中的localdate

问题描述 投票:0回答:1

我在jdk 8中收到不是本地日期成员的Instant错误,

LocalDate.ofInstant(Instant.now(), zone).atStartOfDay(ZoneId.of("Z")).toEpochSecond

在jdk11中运行正常。如何在jdk8中以最体面的方式完成同样的操作。

java java-8 epoch milliseconds java.time.instant
1个回答
0
投票

LocalDate.ofInstant方法是Java 9引入的。这是无论使用Java 8、9还是11都将使用的版本:

    ZoneId zone = ZoneId.of("Asia/Gaza");
    long epochSecond = LocalDate.now(zone).atStartOfDay(ZoneOffset.UTC).toEpochSecond();
    System.out.println("epochSecond: " + epochSecond);

如果您填写相同的时区,它将得到与您的代码相同的结果。

如果需要从给定的Instant进行转换,请在Java 8中执行:

    Instant inst = Instant.now(); // Assign your Instant value here
    long epochSecond = inst.atZone(zone)
            .toLocalDate()
            .atStartOfDay(ZoneOffset.UTC)
            .toEpochSecond();
© www.soinside.com 2019 - 2024. All rights reserved.