我把我的項目放在時區與我的地方不同的主機上。如何獲取指定時區的時間?
在我的web項目中,我使用「Timestamp」將時間插入到我的數據庫中。所以我需要得到芝加哥的時間(我的時區)。我使用jode time來獲得不同時區的時間。
我的代碼如下:
DateTime dt = new DateTime();
DateTime dtChicago =dt.withZone(DateTimeZone.forID("America/Chicago"));
java.sql.Timestamp timeStamp = new java.sql.Timestamp(dtChicago.getMillis());
然而,當我測試了一下,我發現如下打印相同毫秒
DateTime dtLondon = dt.withZone(DateTimeZone.forID("Europe/London"));
System.out.println(dtLondon.getMillis());
DateTime dtChicago = dt.withZone(DateTimeZone.forID("America/Chicago"));
System.out.println(dtChicago.getMillis());
所以,我怎麼能得到確切的「芝加哥」時區時間並將其注入Timestamp?
時間戳沒有時區的概念。 –
''DateTime.getMillis()'總是返回相同的,不管你設置了什麼時區...它返回自1970-01-01T00:00:00Z以來的毫秒數。「。爲什麼不只是存儲時間戳,然後當呈現/使用該值只是轉換爲正確的時區? –
使用格式化程序格式化所需時區中的TimeStamp – MadProgrammer