2013-10-31 269 views
3

我有一個字符串日期:Java日期格式問題?

2013-05-23T00:00:00+00:00 

而且我想用ISODateTimeFormat類格式化:

DateTimeFormatter myParser = ISODateTimeFormat.dateTimeNoMillis(); 
myDate = myParser.parseDateTime(myDateAsString).toDate(); 

格式化的日期值是:

Thu May 23 01:00:00 BST 2013 

如果是1小時從何而來?

回答

2

DateTimeFormatter使用本地時區。你需要創建一個使用UTC時區,像這樣格式化:

DateTimeFormatter myParser = ISODateTimeFormat.dateTimeNoMillis().withZoneUTC(); 
+0

仍然返回相同的日期時間:週四5月23日01:00:00 BST 2013 – user86834

+0

你不顯示的代碼,你」重新使用格式化日期,僅用於解析。你如何格式化它? – Brigham

+0

DateFormat df = new SimpleDateFormat(「yyyy-MM-dd」);返回df.format(日期);如果我的日期時間是一天中的最後一個小時,即2013-05-23T23:59:59 + 00:00,則會出現問題,因爲這會在我使用日期格式,即2013-05-24 – user86834