我的一個項目實現了下面的方法,我正在研究日期問題之一,並試圖瞭解下面的方法,它將給定日期轉換爲GMT,但與輸出混淆。時區與getRawOffset方法混淆
輸入日期值:2010-11-29 04:00:00.0
輸出日期值:太陽11月28日20:00:00 PST 2010
我的機器是在太平洋時區(PST)運行時,如果它會返回GMT,我期待「2010-11-29 11:00:00.0」,您能否澄清getRawOffset()方法的目的以及它返回該輸出的原因?
public static Date convertToGMT(Date date) {
TimeZone jvmTimeZone = TimeZone.getDefault();
long newTime = date.getTime() + jvmTimeZone.getRawOffset();
if (jvmTimeZone.inDaylightTime(date)) {
newTime = newTime + jvmTimeZone.getDSTSavings();
}
return new Date(newTime);
}
作爲一個建議,避免TimeZone庫,這是可怕的。使用Joda時間代替 – Anto
我的建議不要試圖理解此代碼。你應該試着去了解什麼是意圖或目標,然後從頭開始編寫新的代碼。這很容易。 –