关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion有人能解释一下Instant.getEpochSecond命名背后的基本原理吗?与Instant.toEpochMilli?我能想到的唯一原因是瞬间的内部表示是相对于纪元的秒和相对于那一秒的纳秒,而毫秒是根据这两个值计算的。但是为什么要让这样的实现细节泄露到新的API中呢?
我想使用可以在ZonedDateTime和Instant.toEpochMilli()之间转换的MIN/MAX时间值,用作过滤器/查询的标记值。我试过:OffsetDateTime.MIN.toInstant().toEpochMilli();OffsetDateTime.MAX.toInstant().toEpochMilli();但我得到了这个异常(exception):java.lang.ArithmeticException:longoverflowatjava.lang.Math.multiplyExact(Math.java:892)atjava.time.Instant.
您能否阐明如何为默认系统时区和给定时区获取以毫秒为单位的正确纪元时间。给定1.时区:GMT+32。以下代码片段:importjava.time.*;publicclassMain{publicstaticvoidmain(String[]args){System.out.println(LocalDateTime.now().atZone(ZoneOffset.UTC).toInstant().toEpochMilli());System.out.println(LocalDateTime.now().atZone(ZoneOffset.of("+3")).toInstant().to