谁能告诉我这段代码有什么问题:
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秒的小写字符。
SimpleDateFormat
S
s
秒(秒)55 毫秒数978
秒(秒)55
毫秒数978
它解释827为秒,并将这些秒(847秒是13分钟47秒)添加到您的值中。
827
使用SSS毫秒。
SSS
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
顺便说一句,如果相同,则无需SimpleDateFormat多次创建。您可以创建一次,将其保存到变量中,然后parse多次调用,对于您要解析的每个日期/时间字符串一次。
parse