我想了解DST是如何工作的,因为我已经写了关于DST的代码示例,我想知道为什么TimeZone会在凌晨1:00更改,按照我理解的DST 11月3日结束2013 at 2:00 AM所以在凌晨2:00它应该给1:00 AM然后TimeZone应该chnaged,但它不是那样的。谁能帮我出这...在java中DayLight节省时间问题的结束
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
输出看起来理智的我 - 你到底在期待,为什么? –
上午1点30分将是PST,因为那个时间在1点30分在洛杉矶那是什么时区。也许混乱是因为从PDT1点到PD59点的“失去时间”。无法在给定的时区内引用它,您必须明确使用PDT。 –
@AndrzejDoyle:感谢您的回复我期待TimeZone应该在凌晨1:59:30更改,因为DST在凌晨2:00进行安排,所以我们必须按照我的理解将时钟倒退1小时。对于DST的开始,它在上午1点59分60秒给出凌晨3点,因为它将时钟前进了1个小时......可能我并不清楚这一点......我只需要在这里澄清一下。 – JackNeil