2013-07-11 22 views
3

我在運行時發現一個奇怪的現象,在我的java程序,只要看看我的代碼:在我的Java程序中的怪異現象

System.out.println(" date " + new Date(1359931355141L).toGMTString()); 

該語句的輸出是「日期 2013年2月22: 42:35 GMT」,並

System.out.println(" date " + new Date(1359931355141L).getDate()); 

這個輸出是 「日期」,看看,爲什麼不這裏???

我無法弄清楚我的程序有什麼問題;我懷疑我的JVM是否遇到錯誤。
夥計們,你想在你的JVM上測試這兩條語句嗎?

+0

您運行此程序的機器的時區是什麼? – mthmulders

+0

你在哪裏?如果時間是格林威治標準時間22:42,西班牙是格林威治標準時間+1,但現在我們是+2,因爲夏天,所以這裏同一時間是第二天00:42 –

回答

12

因爲您居住在中歐時區至少爲GMT + 1.5Hr)。

getDate()(這是順便說一句不建議使用)返回天月的,並且它在英國返回4(的3代替),因爲在你的時區,那個時代的時間已經進入第二天,而(GMT)它仍然是當月的第3日。

+0

哦,我太笨了,謝謝所有回覆, 非常感謝 – user718146

1

你的語言環境是什麼?如果是2013年2月3日22時42分35秒GMT,但您的區域設置爲GMT + 10,則您當地的日期將爲4.沒有任何bizzare,這是預期的行爲

0

好吧。這取決於你當前的語言環境。格林威治標準時間將爲您提供時間,如果GMT時區getDate會給你你的語言環境的時間。