我正在尝试从来自另一个系统的字符串创建 LocalDateTime 对象(即我无法控制它)。Java 8 的方法LocalDateTime.parse(String, DateTimeFormatter)
无法正确解析我的字符串。日期字符串的一个示例是20190813074127111
,我使用的模式是yyyyMMddHHmmssSSS
。错误在于Text '20190813074127111' could not be parsed at index 0
我已使用信件的文档验证了 DateTimeFormatter 模式中的信件是否正确。
它表示整个字符串可以被评估为一年,因为我在模式字符串中使用 yyyy。我尝试将模式修改为yyMMddHHmmssSSS
和uuMMddHHmmssSSS
; 在这两种情况下,异常都会更改为Text '20190813074127111' could not be parsed at index 15
我尝试在模式末尾修剪 SSS 并从输入字符串中删除毫秒,并正确创建具有正确日期和时间的 LocalDateTime,但我没有提供毫秒精度,并且此用例应尽可能精确。
我必须删除一些细节,因为我是为一家公司做这件事,但这与我试图完成的用例相同
public class MyClass {
private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
public LocalDateTime parseStringToDate(String input) {
return LocalDateTime.parse(input, DATETIME_FORMATTER);
}
}
杨魅力
相关分类