【发布时间】:2019-09-02 20:34:43
【问题描述】:
我正在尝试使用以下代码将 ZonedDateTime 转换为毫秒。
LocalDateTime ldt = LocalDateTime.now();
ZonedDateTime zonedDateTime =ldt.atZone(ZoneId.of(""Asia/Kolkata""));
zonedDateTime.toInstant().toEpochMilli();
但是这个返回基于本地时间的毫秒。而且它没有考虑 ZoneId。
假设LocalDateTime("2019-04-10T05:30")。如果我将其转换为带有区域 ID(“亚洲/加尔各答”)的 ZonedDateTime,那么我将得到("2019-04-10T05:30+05:30[Asia/Kolkata]")。然后我转换为 UTC 中的 EpochMilli (1554854400000) = ("Wed Apr 10 2019 00:00:00")。
【问题讨论】:
-
你能否澄清一下你得到了什么输出以及你期望什么?有点不清楚代码有什么问题。你这样做的方式应该行得通。
-
假设 LocalDateTime("2019-04-10T05:30") 。如果我将其转换为具有区域 ID(“亚洲/加尔各答”)的 ZonedDateTime,那么我将得到(“2019-04-10T05:30+05:30[Asia/Kolkata]”)。然后我转换为 UTC 中的 EpochMilli (1554854400000) = ("Wed Apr 10 2019 00:00:00")。
-
欢迎来到 Stack Overflow。我不清楚你想要达到什么目标,或者你期望的结果是什么。如果您不在亚洲/加尔各答时区,那么您肯定找不到 当前 纪元时间。请您提供更多信息,说明您正在努力实现的目标、您看到的价值以及您期望看到的内容?
-
嗯,是的,2019-04-10T05:30+05:30 和 2019-04-10T00:00:00Z 代表同一时刻。您期望得到什么结果,为什么?
-
感谢补充信息。它总是受欢迎的,你应该总是在你的问题中添加它,而不是在评论中。只是这一次我为你做了。
标签: java epoch zoneddatetime