【发布时间】:2021-09-21 08:51:42
【问题描述】:
我有以下代码。我试图在当前时间获得恰好 10 天前的纪元值t。但是当我使用https://www.epochconverter.com/ 将t 转换回日期/时间时,打印结果的时间不正确。我错过了什么?
long t = LocalDateTime.now()
.minusDays(10)
.toEpochSecond(ZoneOffset.UTC) * 1000;
System.out.println(t);
【问题讨论】:
-
据我了解,您将当前时区的“本地日期/时间”减去 10 天,然后以 UTC 时区输出。您需要注意的是,这不会将值转换为 UTC,它只会采用“当前时间”并显示为 UTC,因此如果是当地时间下午 6 点,则将是 UTC 时间下午 6 点。相反,您应该使用 ZonedDateTime 或使用当前时区转换纪元秒
-
UTC 10 天前还是您所在时区的 10 天前?在极端情况下,这两个可能不是同一时间点。