gpt4 book ai didi

java - 如何在 Java 中使用 TimeZone 处理夏令时

转载 作者:IT老高 更新时间:2023-10-28 20:24:12 25 4
gpt4 key购买 nike

我必须在我的 Java 应用程序中打印 EST 时间。我已使用以下方法将时区设置为 EST:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST"));

但是当在这个时区遵循夏令时时,我的代码没有打印正确的时间(它打印的时间少了 1 小时)。

无论是否遵守夏令时,如何让代码始终读取正确的时间?

PS:我尝试将时区设置为 EDT,但并没有解决问题。

最佳答案

这是开始的问题:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST"));

应完全避免使用 3 个字母的缩写,以支持 TZDB 区域 ID。 EST 是东部标准时间 - 标准时间从不遵守 DST;这不是一个完整的时区名称。它是用于时区部分的名称。 (不幸的是,我还没有找到一个关于“半时区”概念的好词。)

您想要一个完整的时区名称。例如,America/New_York 位于东部时区:

TimeZone zone = TimeZone.getTimeZone("America/New_York");
DateFormat format = DateFormat.getDateTimeInstance();
format.setTimeZone(zone);

System.out.println(format.format(new Date()));

关于java - 如何在 Java 中使用 TimeZone 处理夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545960/

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