来自jdk8中localdate的秒

时间:2020-06-08 17:07:27

标签: java java-8 epoch milliseconds java.time.instant

我在jdk 8中遇到了不是LocalDate成员的Instant错误。

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

在jdk11中运行正常。如何在jdk8中以最体面的方式做到这一点。

1 个答案:

答案 0 :(得分: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();
相关问题