gpt4 book ai didi

java - DateTimeFormatter 的日期格式问题

转载 作者:行者123 更新时间:2023-12-04 11:49:37 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Error: Text '1/31/2020' could not be parsed at index 0 while trying to parse string date

(2 个回答)



Problem with parse a LocalDateTime using java 8

(2 个回答)



Timestamp can't be parsed Issue java.time.format.DateTimeParseException: Text '9/25/2020, 12:46:00 PM' could not be parsed at index 0

(2 个回答)


去年关闭。




我有以下格式的日期:1/1/2020 3:4:7 AM我正在尝试使用 DateTimeFormatter 对其进行格式化.
我有以下带有格式化程序的代码来解析它,但它不起作用。

LocalDateTime date = LocalDateTime.parse("1/1/2020 3:4:7 AM", DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm:ss a"));
我收到以下异常:

java.time.format.DateTimeParseException: Text '1/1/2020 3:4:7 AM' could not be parsed at index 0


谁能帮我?

最佳答案

两个独立的问题:
错误的计数
你正在使用例如MM这是一个明确的:总是全数字,零填充。你的字符串不是那样的,它只是数字。所以,让 M/d/uuuu h:m:s a .
编辑:更改 yyyyuuuu ,谢谢,@deHaar。推理:yyyy 或 uuuu 很少重要,但请注意,这意味着需要 4 位数字。差异在 0 之前的几年开始:uuuu变为负值,yyyy没有并希望您使用例如GG以便您获得 44 BC而不是 -44 .这样,uuuu只是更正确,即使通常不会出现差异。
缺少语言环境
第二个问题是你应该差不多从不 使用此版本的 ofPattern - 它有一个错误,您无法通过单元测试捕获它,这使得该错误“严重”了数千倍,因此是一个真正的问题。
您需要指定语言环境。没有它,除非您的平台默认语言环境是英语,否则“AM”不会解析。
把它放在一起

LocalDateTime date = LocalDateTime.parse("1/1/2020 3:4:7 AM",
DateTimeFormatter.ofPattern("M/d/uuuu h:m:s a", Locale.ENGLISH));
效果很好。

关于java - DateTimeFormatter 的日期格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64210169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com