【发布时间】:2020-02-28 11:31:03
【问题描述】:
我正在使用 Java 在 Android Studio 中制作适用于 Android 的应用程序。我正在处理日期和时间。我正在尝试从自定义的给定时间点生成 Unix 时间戳。比如下面这段代码
LocalDateTime aDateTime = LocalDateTime.of(2021, 4, 30, 8, 30);
ZoneId zoneId = ZoneId.systemDefault();
int x = Math.toIntExact(aDateTime.atZone(zoneId).toEpochSecond());
产生一个 Unix 时间戳 1619760600。但是,当我将它输入任何在线转换器时,它会产生一个时间 04/30/2021 @ 5:30am (UTC)。这与原始插入时间相差 3 hours,这是我的时区与 UTC00:00 不同的确切小时数。
问题似乎是我无法理解 Java 中的时区。所以我的问题是,我如何正确考虑时区以便生成正确的 UnixTimeStamp?
【问题讨论】: