問題已解決外部設備正在計算和發送非標準的2小時移位時間戳,這非常困惑我並啓動了此線程。 TIMESTAMP本身不受時區,時區從人類可讀形式/轉換隻有當適用。在Java中的不同時區和不同DST之間轉換unix時間戳
我在UTC時區的時間戳(自Unix紀元秒) - 沒有DST(夏令時間)。
我想在「歐洲/布拉格」時區,使用DST時間戳(自Unix紀元秒)。
我曾經認爲Unix時間戳是由未結合的時區,該時區隻影響轉換時間戳人類可讀的格式的過程。但看起來不是這樣。而我試圖轉換它(使用Calendar和TimeZone類)越多,我越感到困惑和迷茫。
預期驗證碼不起作用:
Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.setTimeInMillis(ts*1000);
cal.setTimeZone(TimeZone.getTimeZone("Europe/Prague"));
return cal.getTimeInMillis()/1000;
這是什麼呢?在每行代碼之間打印cal時會發生什麼? – 2013-04-22 13:23:30
你或許應該說明你是否會有興趣在[喬達時間(HTTP://joda-time.sourceforge。網/)解決方案,因爲我懷疑你會開始接收它們。 – 2013-04-22 13:24:53
@Peter最近的時間戳'1366642620'它返回了同一個 - 沒有轉換髮生。如果我嘗試在UTC和歐洲/布拉格時區打印出PHP中的時間戳,我會得到不同的時間:14:57和16:57 – David162795 2013-04-22 13:40:16