4
我很好奇Java的SimpleDateFormat如何根據它設置的時區來決定何時遞增/遞減傳入時間。Java SimpleDateFormat時區解析
比方說,我有一個日期06/04/2013。然後我把時區設置爲離我很遠(我在格林威治標準時間-5)。假設我使用GMT + 8。
我打電話
SimpleDateFormat df = new SimpleDateFormat("M/d/yy");
df.setTimeZone(TimeZone.getTimeZone("GMT+8"));
df.parse(endDate) // this returns 06/**03**/2013 //endDate is just a String
它返回2013年6月3日。它爲什麼減少它?
編輯:基本上我問的是,如果我將它設置爲GMT + 8,Java使用什麼參考點將我的日期敲回6/3。有一些邏輯說,嘿,我不在這個當前的時區,所以讓我們改變它。但是由於我傳遞了一個字符串,我沒有看到它可能在哪裏。
我假設默認情況下,如果我不在字符串中提供時區,它將默認爲GMT。
我以爲他試過格林威治標準時間-5,它顯示爲第四,然後他試着格林威治標準時間+8,它顯示爲第三。 – jdero
所以你說默認情況下,SimpleDateFormat假定我想在格林尼治標準時間的日期,而不是我傳入的時區? –
不,我剛剛說過,通過將日期格式的時區設置爲GMT + 8,您將它解析爲06/04/2013,格式爲06/04/2013 GMT + 8,與06/03相同/ 2013 16:00 GMT,與06/03/2013 11:00 GMT-5同一時刻 –