gpt4 book ai didi

java - Linux 服务器显示 UTC 而不是 EST,本地显示 EST

转载 作者:IT王子 更新时间:2023-10-29 00:39:58 26 4
gpt4 key购买 nike

我无法弄清楚为什么下面代码的时区一直显示 UTC 而不是 EST。在我的本地计算机上它显示 EST,即使我在 MST 时间但在实际服务器上它一直显示 UTC。有什么线索吗?

Mon Nov 9 2015 1:58:49 PM UTC


@JsonIgnore
public String getDateCreatedFormatted() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(getDateCreated());
calendar.setTimeZone(TimeZone.getTimeZone("EST"));

SimpleDateFormat format = new SimpleDateFormat("EEE MMM d yyyy h:mm:ss a z");

return format.format(calendar.getTime());
}

最佳答案

您已将日历 设置为美国东部标准时间,但尚未在 SimpleDateFormat 上设置时区,这是格式化的一种用途。只需使用:

format.setTimeZone(TimeZone.getTimeZone("America/New_York"));

在格式化Date 之前。从外观上看,您也根本不需要 Calendar:

@JsonIgnore
public String getDateCreatedFormatted() {
SimpleDateFormat format = new SimpleDateFormat("EEE MMM d yyyy h:mm:ss a z", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("America/New_York"));
return format.format(getDateCreated());
}

此外,我强烈建议您使用上面的完整时区 ID,而不是像“EST”这样不明确的缩写。 (那里有两个问题 - 首先,EST 在不同的位置可能意味着不同的东西;其次,美国 EST 应该始终表示东部 标准 时间,而我假设你想使用东部时间来格式化,无论是标准时间或夏令时取决于夏令时是否有效。)

关于java - Linux 服务器显示 UTC 而不是 EST,本地显示 EST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046380/

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