我试图找到 DST 的工作原理,因为我已经编写了讨论 DST 的代码示例,我想知道为什么 TimeZone 根据我的理解在凌晨 1:00 更改 DST 2013 年 11 月 3 日凌晨 2:00 所以在 2 :00AM 它应该给 1:00AM 然后 TimeZone 应该被更改,但它不是那样的。谁能帮我解决这个问题......
public static void main(String[] args) throws InterruptedException
{
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
DateFormat fmt = new SimpleDateFormat("dd-MM-yy HH:mm:ss zz");
Calendar cal = Calendar.getInstance();
cal.set(2013, 10, 03, 0, 59, 59);
System.out.println(fmt.format(cal.getTime()));
cal.set(2013, 10, 03, 1, 0, 0);
System.out.println(fmt.format(cal.getTime()));
}
输出:
03-11-13 00:59:59 PDT
03-11-13 01:00:00 PST
最佳答案
01:00 出现两次,一次在太平洋夏令时间,一次(一小时后)在太平洋标准时间。
如果您告诉 Calendar 现在是时间更改日期的 01:00,则该类会识别您的输入对应于 2 个不同的可能时间,并任意使用其中一个。
关于java - Java 中的夏令时结束问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673860/