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

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

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

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

回答:

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

秒(秒)55

毫秒数978

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

使用SSS毫秒。

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

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

以上是 SimpleDateFormat解析时间和日期错误的分钟和秒 的全部内容, 来源链接: utcz.com/qa/406997.html

回到顶部