2013-02-27 87 views
1

嗨在下面的代碼段我得到的輸出爲9和10,爲什麼會發生這種情況?即使日曆的時區不同,我們也會通過相同的日期來設置時間。據我所知,時間是從曆元計算出來的一個相對值,所以無論什麼時區,這個相對值都應該是相同的在不同時區的Java日曆給出了不同的值同時

我在一個時區遇到與我的數據庫類似的問題,服務器在另一個。

Date date = new Date(); 
    Calendar c = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"),Locale.US); 
    Calendar c1 = Calendar.getInstance(); 
    c.setTime(date); 
    c1.setTime(date); 
    System.out.println(c.get(Calendar.HOUR)); 
    System.out.println(c1.get(Calendar.HOUR)); 
+1

現在在洛杉磯的時間和你住的地方一樣嗎?格林威治是否一樣?來自wiki *「時區是地球上具有統一標準時間的地區......陸地上的大多數時區都與協調世界時(UTC)相差了整整數小時(UTC-12到UTC + 14),但有一些偏移了30或45分鐘,一些較高緯度的國家在一年中的一部分時間使用夏令時,通常是通過改變時鐘一小時。*「 – MadProgrammer 2013-02-27 05:35:16

+0

嗨,感謝您的時間,但請不要說我我將相同的時間設置爲日曆實例,甚至在設置日曆實例的正常時間之後,它們將返回不同的值,那就是我的困惑 – Ajay 2013-02-27 05:36:45

+0

是的,但是您在兩個不同的時區設置「相同時間」這就是每個人都在做的事情。格林威治標準時間上午10點!= PST上午10點。 – Ben 2013-07-19 09:40:34

回答

2

當你在約會過,它的UTC時間戳拍攝(以便毫秒數,因爲在GMT + 0 01-01-1970),你再設置兩個日曆到同一個時間,並詢問什麼時候它是。

明顯的是,不同時區的時區會有所不同--LA時區和運行代碼的計算機的時區,即使它們已經使用完全相同的UTC時間進行了初始化。

相關問題