Java如何转换日期
日期转换方法
Java中日期转换通常涉及java.util.Date、java.time包(Java 8+)或SimpleDateFormat类。以下是几种常见的转换方式:
使用SimpleDateFormat(旧版API)
import java.text.SimpleDateFormat;
import java.util.Date;
String pattern = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String dateString = sdf.format(new Date()); // Date转String
Date parsedDate = sdf.parse("2023-10-01"); // String转Date
Java 8的java.time包(推荐)
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
LocalDate date = LocalDate.parse("2023/10/01", formatter); // String转LocalDate
String formattedDate = date.format(formatter); // LocalDate转String
Date与LocalDate互转

import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
// Date转LocalDate
Date oldDate = new Date();
LocalDate newDate = oldDate.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
// LocalDate转Date
Date convertedDate = Date.from(newDate.atStartOfDay()
.atZone(ZoneId.systemDefault())
.toInstant());
注意事项
- 时区处理:转换时需明确时区(如
ZoneId.systemDefault())。 - 线程安全:
SimpleDateFormat非线程安全,建议每次创建新实例或使用ThreadLocal。 - 格式验证:使用
DateTimeFormatter时,非法格式会抛出DateTimeParseException。
常见模式符号
yyyy:四位年份MM:两位月份dd:两位日期HH:24小时制小时mm:分钟ss:秒






