我變換UTC時間到另一個時區,使用這種方法:轉換UTC日期,以其它時區
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parsed = format.parse("2011-03-01 15:10:37");
TimeZone tz = TimeZone.getTimeZone("America/Chicago");
format.setTimeZone(tz);
String result = format.format(parsed);
所以輸入是2011-03-01 15:10:37
但這(結果的值)的輸出爲2011-03-01 05:40:37
。雖然它似乎關閉,並根據this link,它應該是2011-03-01 09:10:37
。
我在做什麼錯?
不要忘了'嘗試{}趕上(ParseException的E){}''左右sourceFormat.parse()'。此外,爲了獲得手機所在的本地時區,請使用'TimeZone.getDefault()',以便將UTC轉換爲當地時區 – 2013-02-13 00:32:49
@hadi Eskandari Mate您剛剛救了我!我正在試圖解決我的頭髮問題......!我從我們的服務器上拉下數據並存儲到數據庫中,然後再顯示到屏幕上。服務器日期存儲在AEST(澳大利亞東部標準)中,並且我在使用默認系統時區時遇到了確切的問題,因此解釋錯誤的時間。當我嘗試更改爲另一個日期時,它總是錯誤的:)我只需要'formater.setTimeZone(TimeZone.getTimeZone(RBApplication.adjustTimezoneAEST));'在我的解析行之前。歡呼,我在這個問題上幾個小時! – wired00 2013-02-26 07:43:38
@ wired00很高興聽到這有助於隊友:) – 2013-02-26 10:16:24