我正在尝试将以下字符串转换为LocalDateTime:
String dateStr = "2020-08-17T10:11:16.908732";
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.nnnnnn");
LocalDateTime dateTime = LocalDateTime.parse(dateStr, format);
但是我遇到了以下错误:
java.time.format.DateTimeParseException: Text '2020-08-17T10:11:16.908732' could not be parsed at index 10
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
谁能帮忙建议我应该如何将字符串正确格式化为LocalDateTime?
非常感谢
DateTimeFormatter
在这种情况下,您无需指定a ,因为如果您根本不通过,则将使用默认值:
public static void main(String[] args) {
String dateStr = "2020-08-17T10:11:16.908732";
LocalDateTime dateTime = LocalDateTime.parse(dateStr);
System.out.println(dateTime);
}
该代码将输出2020-08-17T10:11:16.908732
。
如果您坚持使用自定义DateTimeFormatter
,请T
在模式中用单引号将其考虑在内,而不要使用纳秒解析(n
)来解析秒()的分数,S
否则结果可能是错误的。
像这样做:
public static void main(String[] args) {
String dateStr = "2020-08-17T10:11:16.908732";
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS");
LocalDateTime dateTime = LocalDateTime.parse(dateStr, format);
System.out.println(dateTime);
}
具有与上述相同的输出。
注意:
使用模式的结果"yyyy-MM-dd'T'HH:mm:ss.nnnnnn"
将不等于parsed String
,而是
2020-08-17T10:11:16.000908732
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句