作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我必须在我的 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/
我是一名优秀的程序员,十分优秀!