无法将字符串转换为 LocalDateTime 格式“YYYYMMDDhhmmss”(周年)模式(月份)

问题描述 投票:0回答:1

解析给定的字符串时,我收到“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
java date-format
1个回答
1
投票

我知道在某些问题上建议使用“yyyy”和“dd”,但我 无法使用它们。

不仅是 'yyyy' 和 'dd',您还需要使用 'HH' 而不是 'hh',因为 'hh' 仅对 am/pm 标记有意义,即 12 小时时间格式。对于带有 am/pm 标记的时间,您需要使用 'hh' 和 'a',例如'嗯嗯'。查看文档以了解有关它们的更多信息。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
LocalDateTime dt = LocalDateTime.parse("20120823151034", formatter);
System.out.println(dt);

示例运行的输出:

2012-08-23T15:10:34

在线演示

Trail:日期时间了解有关现代日期时间 API 的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.