SimpleDateFormat 解析日期时会重置小时和分钟

4
我收到了一个类似于字符串的日期 "start_date": "2013-07-05T11:32:00+00:00",需要将其转换成日期对象,并表示出小时和分钟。
如果我使用格式 "yyyy-MM-dd'T'HH:mm:ss+HH:mm"sdf.parse(startDate) , 返回的日期对象中小时和分钟会被重置。
但是我需要保留小时和分钟进行日期比较。如何解决这个问题?
2个回答

12
你需要使用模式"yyyy-MM-dd'T'HH:mm:ssXXX"来解析日期。("XXX"代表时区)
在你的情况下,第二个"HH:mm"正在重置值并使用上次解析的数据。

谢谢,它有效。完美的答案,我希望我能把答案顶起来 :)。 - Luser_k
@Luser_k 只需接受答案。这样它就会保持在顶部,并给我一些声望。 - Uwe Plonus

2
这部分是问题所在:+HH:mm。您告诉解析器加号后面的部分是日期的小时和分钟部分,而这些值为00和00,因此结果为0和0。实际上,加号后面的部分是相对于UTC时间的偏移量,其符号为XXX(自Java 7起)。

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