Java日期格式转换
时间: 2025-06-12 18:46:41 浏览: 7
### Java 日期格式转换教程与示例代码
在Java中,日期和时间的处理可以通过多种方式实现。以下是一些常用的日期格式转换方法及其实现代码。
#### 使用 `SimpleDateFormat` 类进行日期格式转换
`SimpleDateFormat` 是 `java.text` 包中的一个类,用于将日期对象格式化为字符串或将字符串解析为日期对象[^2]。
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatExample {
public static void main(String[] args) {
// 定义日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
// 将字符串转换为Date对象
String dateString = "2023-10-05 14:30:00";
Date date = sdf.parse(dateString);
System.out.println("字符串转日期: " + date);
// 将Date对象转换为字符串
String formattedDate = sdf.format(new Date());
System.out.println("日期转字符串: " + formattedDate);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
```
#### 使用 `Calendar` 类进行日期转换
`Calendar` 类可以用来获取或设置日期和时间字段,并且可以与 `Date` 对象相互转换[^2]。
```java
import java.util.Calendar;
import java.util.Date;
public class CalendarExample {
public static void main(String[] args) {
// 获取当前时间
Calendar calendar = Calendar.getInstance();
System.out.println("当前时间: " + calendar.getTime());
// 设置时间
Date date = new Date();
calendar.setTime(date);
// 获取时间
Date convertedDate = calendar.getTime();
System.out.println("转换后的日期: " + convertedDate);
}
}
```
#### 使用 Java 8 的 `java.time` 包
从 Java 8 开始,引入了新的日期和时间API (`java.time`),提供了更强大和易用的功能[^1]。
```java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Java8DateTimeExample {
public static void main(String[] args) {
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 当前日期时间
LocalDateTime now = LocalDateTime.now();
System.out.println("当前日期时间: " + now);
// 格式化日期时间
String formattedDateTime = now.format(formatter);
System.out.println("格式化后的日期时间: " + formattedDateTime);
// 解析字符串为日期时间
LocalDateTime parsedDateTime = LocalDateTime.parse("2023-10-05 14:30:00", formatter);
System.out.println("解析后的日期时间: " + parsedDateTime);
}
}
```
#### 注意事项
1. 在使用 `SimpleDateFormat` 时,需要注意线程安全问题,因为它不是线程安全的[^2]。
2. 推荐在多线程环境中使用 Java 8 的 `java.time` 包,因为它是线程安全的[^1]。
阅读全文
相关推荐











