提问人:cevelry 提问时间:11/9/2023 更新时间:11/9/2023 访问量:84
无法将 String 转换为 LocalDateTime 格式 “YYYYMMDDhhmmss” (周、年) 模式和 (月中的某一天)
Unable to convert String to LocalDateTime format "YYYYMMDDhhmmss" (week year) pattern with (day of month)
问:
我在解析给定的字符串时收到“DateTimeParseException”:
我知道在某些问题上建议使用“yyyy”和“dd”,但我不能使用它们。 我使用 JDK 17
import java.time.format.DateTimeFormatter;
import java.time.*;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYYMMDDhhmmss");
LocalDateTime date = LocalDateTime.parse("20120823151034", formatter);
结果:
Exception in thread "main" java.time.format.DateTimeParseException: Text '20120823151034' could not be parsed at index 0
答:
3赞
Arvind Kumar Avinash
11/9/2023
#1
我知道在某些问题上建议使用“yyyy”和“dd”,但是我 不能使用它们。
不仅是“yyyy”和“dd”,您还需要使用“HH”而不是“hh”,因为“hh”仅适用于 am/pm 标记,即 12 小时时间格式。对于带有 am/pm 标记的时间,您需要将“hh”与“a”一起使用,例如“hhmmss a”。查看文档以了解有关它们的更多信息。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
LocalDateTime dt = LocalDateTime.parse("20120823151034", formatter);
System.out.println(dt);
示例运行的输出:
2012-08-23T15:10:34
从 Trail: Date Time 了解有关新式日期时间 API 的更多信息。
评论
1赞
anubhava
11/16/2023
好赶上 vsHH
hh
评论
151034
建议该模式需要HHmmss
yyyyMMddHHmmss