Java日期格式问题?

3

我有一个字符串日期:

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个回答

2

您的DateTimeFormatter正在使用本地时区。您需要创建一个使用UTC时区的格式化程序,像这样:

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

仍然返回相同的日期时间:2013年5月23日星期四01:00:00 BST - user86834
你没有展示出你用来格式化日期的代码,只有解析的代码。你是如何进行格式化的? - Brigham
DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); return df.format(date); 如果我的日期带有在一天中的最后一小时的时间,例如2013-05-23T23:59:59+00:00,则会出现问题,因为这会创建一个带有不正确日期的日期对象,当我使用日期格式时,即2013-05-24。 - user86834

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接