jdk8中localdate的EpochSeconds

Posted

技术标签:

【中文标题】jdk8中localdate的EpochSeconds【英文标题】:EpochSeconds from localdate in jdk8 【发布时间】:2020-09-27 17:45:24 【问题描述】:

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

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

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

【问题讨论】:

一个类似的问题将解决即时到本地日期的转换***.com/questions/52264768/… 【参考方案1】:

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();

【讨论】:

以上是关于jdk8中localdate的EpochSeconds的主要内容,如果未能解决你的问题,请参考以下文章

JDK8中好用的日期处理-LocalDate类-LocalTime-LocalDateTIme,mysql解决时区相差13小时的问题,日期格式器DateTimeFormatter

日期 时间 date calendar localdate

JDK8时间工具类

JDK8的LocalDateTime用法

Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?

Java学习笔记4.5.2 日期时间 - JDK8新增日期与时间类