日期格式转换时非必要不使用"YYYY-MM-dd HH:mm:ss",应使用小写的"yyyy-MM-dd HH:mm:ss",大写的格式表示的是该周所属年份。
public void testDateTimeFormatter(){
LocalDateTime dateTime = LocalDateTime.parse("2025-12-31T12:00:00");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss");
System.out.println("yyyy-MM-dd HH:mm:ss格式解析出时间为:"+dateTime.format(formatter));
// 输出结果: yyyy-MM-dd HH:mm:ss格式解析出时间为:2025-12-31 12:00:00
System.out.println("YYYY-MM-dd HH:mm:ss格式解析出时间为:"+dateTime.format(formatter1));
// 输出结果: YYYY-MM-dd HH:mm:ss格式解析出时间为:2026-12-31 12:00:00
}
所以建议非特殊情况统一使用"yyyy-MM-dd HH:mm:ss"格式进行转换,如果两次转换格式不一致可能导致时间改变。
public void testDateTimeFormatter_1(){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse("2025-12-30 12:00:00",formatter);
String YYYYDate = dateTime.format(formatter1);
// YYYYDate值为 "2026-12-30 12:00:00"
LocalDateTime newDateTime = LocalDateTime.parse(YYYYDate,formatter);
}