[英]Java SimpleDateFormat timezone parsing
我很好奇Java的SimpleDateFormat如何根據設置的時區確定何時增加/減少傳遞的時間。
假設我有個約會06/04/2013。 然后,我將時區設置為離我較遠的時區(我在GMT-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。
您正在使用GMT-5,並且正在解析表示GMT + 8時區中某個時刻的字符串。
因此,日期06/04/2013
實際上是06/04/2013 00:00 GMT+8
。 要獲取格林尼治標准時間的日期,您必須減去8小時: 06/03/2013 16:00 GMT
。 而要在GMT-5上獲取日期,您必須再減去5個小時: 06/03/2013 11:00 GMT-5
。
所有這些字符串是同一時刻的不同表示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.