前言
在使用2025-09
转换成LocalDateTime
出现错误,原因在于LocalDateTime只能适用这种格式yyyy-MM-dd HH:mm:ss
,LocalDate使用yyyy-MM-dd
格式,否则会抛异常

解决方法
转换成LocalDate
将字符串时间补充到yyyy-MM-dd
格式,然后格式化时间
ini
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String time = "2025-09-01";
// 解析成LocalDate
LocalDate localDate = LocalDate.parse(time, dateTimeFormatter);
LocalDateTime localDateTime = localDate.atStartOfDay();
System.out.println(localDateTime);

使用LocalDateTime解析
scss
public class DateParseExample {
public static void main(String[] args) {
String dateStr = "2025-02-01";
final TemporalAccessor temporalAccessor = DateTimeFormatter.ISO_DATE.parse(dateStr);
final LocalDateTime localDateTime = LocalDateTime.of(
secureGet(temporalAccessor, ChronoField.YEAR),
secureGet(temporalAccessor, ChronoField.MONTH_OF_YEAR),
secureGet(temporalAccessor, ChronoField.DAY_OF_MONTH),
secureGet(temporalAccessor, ChronoField.HOUR_OF_DAY),
secureGet(temporalAccessor, ChronoField.MINUTE_OF_HOUR),
secureGet(temporalAccessor, ChronoField.SECOND_OF_MINUTE),
secureGet(temporalAccessor, ChronoField.NANO_OF_SECOND)
);
System.out.println(localDateTime);
}
private static int secureGet(TemporalAccessor temporalAccessor, ChronoField chronoField) {
if (temporalAccessor.isSupported(chronoField)) {
return temporalAccessor.get(chronoField);
}
return 0;
}
}
或者补到这种时间格式yyyy-MM-dd HH:mm:ss
,然后转换为LocalDateTime