java中解析字符串为日期对象需用datetimeformatter.parse()配合对应类型:localdate、localdatetime或zoneddatetime;须匹配格式与类型,优先用iso内置常量,自定义pattern注意大小写和语义,异常需捕获datetimeparseexception。

Java 中用 DateTimeFormatter 将字符串解析为日期对象,核心是使用 parse() 方法配合对应的日期时间类型(如 LocalDateTime、LocalDate 或 ZonedDateTime),不能直接解析成 Date 或 Calendar。
明确目标类型再选 formatter
不同格式的字符串对应不同的日期时间类型,必须匹配:
-
"2024-05-20" → 用
LocalDate.parse(str, formatter) -
"2024-05-20 14:30:45" → 用
LocalDateTime.parse(str, formatter) -
"2024-05-20T14:30:45+08:00" → 用
ZonedDateTime.parse(str, formatter)
预定义 formatter 能省事就别手写
常见 ISO 格式优先用内置常量,避免拼错模式:
LocalDate.parse("2024-05-20", DateTimeFormatter.ISO_LOCAL_DATE)LocalDateTime.parse("2024-05-20T14:30:45", DateTimeFormatter.ISO_LOCAL_DATE_TIME)ZonedDateTime.parse("2024-05-20T14:30:45+08:00", DateTimeFormatter.ISO_OFFSET_DATE_TIME)
自定义格式要用正确 pattern 字母
手写 pattern 时注意大小写和含义,比如:
-
"yyyy-MM-dd HH:mm:ss"→ 对应LocalDateTime -
"dd/MM/yyyy"→ 对应LocalDate,需显式创建 formatter:DateTimeFormatter.ofPattern("dd/MM/yyyy") - 年份用 yyyy(4位),不是
YYYY(week-year,易出错) - 小时用 HH(24小时制)或 hh(12小时制),别混用
解析失败会抛 DateTimeParseException
字符串与格式不匹配时会抛异常,建议捕获处理:
try {
LocalDate date = LocalDate.parse("2024/05/20", DateTimeFormatter.ofPattern("yyyy/MM/dd"));
} catch (DateTimeParseException e) {
System.err.println("日期格式错误:" + e.getMessage());
}Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











