我想了解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