为了账号安全,请及时绑定邮箱和手机立即绑定

DateTimeFormatter 无法将字符串解析为 LocalDateTime

DateTimeFormatter 无法将字符串解析为 LocalDateTime

心有法竹 2024-01-17 20:46:48
我正在尝试从来自另一个系统的字符串创建 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);    }}
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

您需要使用 DateTimeFormatBuilder:

DateTimeFormatter formatter =
    new DateTimeFormatterBuilder()
        .appendPattern("yyyyMMddHHmmss")
        .appendValue(ChronoField.MILLI_OF_SECOND, 3)
        .toFormatter();
查看完整回答
反对 回复 2024-01-17
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信