0

我在 jdk 8 中收到错误 instant not member of LocalDate 。

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

它在 jdk11 中运行良好。如何在 jdk8 中以最体面的方式完成相同的操作。

4

1 回答 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();
于 2020-06-08T17:43:53.870 回答