【发布时间】:2021-09-01 22:28:23
【问题描述】:
我在解析日期时遇到解析错误
java.text.ParseException:无法解析的日期:“2021-06-17T05:49:41.174Z” 无法解析的日期:“2021-06-17T05:49:41.174Z”
我的代码是这样的
private static String generateAndValidate(int count) {
Clock clock = Clock.systemUTC();
String clockTime=clock.instant().toString();
String result=clockTime;
SimpleDateFormat output = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ",Locale.ENGLISH);
try {
output.parse(clockTime);
} catch (ParseException e) {
System.out.println("process date parse error. Going for retry.");
}
return result;
}
还尝试在这里对值进行硬编码
SimpleDateFormat output = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ",Locale.ENGLISH);
try {
output.parse("2021-06-17T05:49:41.174Z");
} catch (ParseException e) {
System.out.println("process date parse error. Going for retry.");
}
可能是什么问题?
【问题讨论】:
-
既然你可以使用java.time,现代Java日期和时间API,不要再混入旧的和麻烦的
SImpleDateFormat类。Clock是 java.time 的一部分。另外,您要实现的更大目标是什么?我们或许可以帮助您找到更好的方法。 -
你为什么还用
SimpleDateFormat?它已经过时了很长时间。请改用DateTimeFormatter。请参阅 deHaar 的回答。 -
我犹豫地将 Parse Date String in Java [duplicate] 列为原始问题。请注意那里接受的答案不正确。 The other answer, by achAmháin, 很好。