2010-11-24 71 views
2

問候所有 我有一個J2EE應用程序使用Spring框架 和同時在線的服務器上調試(CentOS的OS) 試圖通過打印new Date();對象 的價值得到在應用程序的日期,當它檢索GMT-時間6雖然通過終端 的命令日期獲取服務器時間,但它是在GMT時間,實時檢索的,所以我想知道GMT-6從何而來,爲什麼會出現這種奇怪的行爲?在CentOS OS上取得Java日期不正確?

回答

0

重新啓動apache,tomcat後問題解決了......但仍然不知道爲什麼會出現這種行爲。

0

也許在您的應用程序的某個地方,默認時區更改爲TimeZone.setDefault(..)

+0

搜索整個應用程序,沒有找到這樣的事情設置時區爲默認值。 – 2010-11-24 16:35:22

1

這聽起來像是一個語言環境問題。更具體地說,這不是問題,它只是Java處理不同時區/區域設置的方式。

this article使用代碼:

Properties p = System.getProperties(); 
Enumeration keys = p.keys(); 
while (keys.hasMoreElements()) { 
    String key = (String)keys.nextElement(); 
    String value = (String)p.get(key); 
    System.out.println(key + ": " + value); 
} 

你可以看到的Java如何解釋您的環境。

如果您更改CentOS的時區/區域設置,Java應該選擇相應的更改並顯示時間。

但這聽起來像是一個矯枉過正的問題,customizing date format基於語言環境可能是你需要的。

不同的應用程序可能會輸出不同的日期。

+0

請看我上面的答案,並告訴我你的想法是什麼? – 2010-11-24 15:25:10

+0

@ sword101:輸出的GMT-6時間是否正確?重新啓動後會再次發生嗎?如果是,何時?你的調試器是什麼? – darioo 2010-11-24 15:32:16