小编典典

SimpleDateFormat解析时间和日期错误的分钟和秒

java

谁能告诉我这段代码有什么问题:

System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'").parse("2015-04-22T19:54:11.827Z"));

System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'").parse("2015-04-22T19:54:11.0Z"));

输出是:

Wed Apr 22 20:07:47 GMT+02:00 2015
Wed Apr 22 19:54:00 GMT+02:00 2015

当输入时间以毫秒为单位时,请注意以分钟为单位的差异。


阅读 488

收藏
2020-11-23

共1个答案

小编典典

对于SimpleDateFormat,毫秒格式的值包含大写S字符,而不是s秒的小写字符。

秒(秒)55

毫秒数978

它解释827为秒,并将这些秒(847秒是13分钟47秒)添加到您的值中。

使用SSS毫秒。

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")

顺便说一句,如果相同,则无需SimpleDateFormat多次创建。您可以创建一次,将其保存到变量中,然后parse多次调用,对于您要解析的每个日期/时间字符串一次。

2020-11-23