gpt4 book ai didi

java - 无法根据 UTC 计算时间

转载 作者:行者123 更新时间:2023-12-01 13:51:33 26 4
gpt4 key购买 nike

我希望下面的代码能够在我的本地时区(美国东部时间)中呈现正确的时间,但我总是得到比当前时间早 5 小时的时间。我的 userTimeZoneOffset 值为 -300,这是我的时区与 UTC 的正确偏移分钟数。 dateAndTimeFormat 对我来说设置为“MM/dd/yyyy h:mm a”。

如何获取下面的 currentDateAndTime 变量以根据 UTC 而不是我当前的时区进行计算?

String dateAndTimeFormat = i18nUtil.getValue(locale, "dateAndTimeFormat");
SimpleDateFormat sdf = new SimpleDateFormat(dateAndTimeFormat);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
if (userTimeZoneOffset != null) {
calendar.add(Calendar.MINUTE, userTimeZoneOffset);
}
String currentDateAndTime = sdf.format(calendar.getTime());
return currentDateAndTime;

最佳答案

正如我在评论中提到的,您应该查看 Joda-Time 而不是 Java DateTime/Calendar 库。

要获取当前 UTC 时间,您应该导入以下包并调用以下代码行:

import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;

DateTime utcDateTime = new DateTime(DateTimeZone.UTC);

看来您还希望从收到的 DateTime 中减去时间。为此,您可以调用以下方法:

DateTime estDateTime = utcDateTime.minusHours(5);

乔达时间:http://www.joda.org/joda-time/

关于java - 无法根据 UTC 计算时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19916239/

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