gpt4 book ai didi

java - 在 Java 中使用 java.util.Date 进行不同的时间转换

转载 作者:行者123 更新时间:2023-12-03 11:17:31 25 4
gpt4 key购买 nike

我正在使用以下代码通过使用 java.util.Date 进行纪元到时间的转换Java中的类。

Long scheduledTime = 1602258300000L;
Date date = new Date(scheduledTime);
System.out.println("Date obj :" + date);
以下是在两个不同时区服务器上运行相同代码时的输出:
在 EDT 服务器上-
Date obj :Fri Oct 09 11:45:00 EDT 2020
在 IST 服务器上 -
Date obj :Fri Oct 09 21:15:00 IST 2020
为什么会发生这种情况?我只是通过毫秒。该数据应该在所有服务器上被视为 21:15。为什么 Date 类会更改数据?
无论服务器的时区如何,请共享一段示例代码以获取相同的时间数据。

最佳答案

一个 Date object 代表一个特定的时刻,由自 Unix 纪元以来的给定毫秒数表示。toString()方法根据默认时区将该时刻转换为本地时间。不是说Date值本身“有”一个时区——它只是 toString()使用默认值。

This data is supposed to be treated as 21:15 on all servers.


这表明您希望在所有服务器中使用印度时区,至少在转换即时显示时是这样。在不了解有关您的应用程序的更多信息的情况下,我们只能说...除了“不要使用 java.util.Datejava.util.Calendar ;改用 java.time 类”。它们的设计要好得多,您不太可能遇到这样的问题。

关于java - 在 Java 中使用 java.util.Date 进行不同的时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64282121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com