簡體   English   中英

Java SimpleDateFormat時區解析

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM