SimpleDateFormat怎么使用
时间: 2025-05-29 12:05:18 浏览: 9
### SimpleDateFormat 使用教程
`SimpleDateFormat` 是 Java 中用于格式化和解析日期的一个重要工具类。它继承自 `DateFormat` 类,允许开发者通过指定的模式来控制日期和时间的显示格式。
以下是关于 `SimpleDateFormat` 的详细介绍:
#### 1. 构造方法
`SimpleDateFormat` 提供了多种构造函数以便于创建对象并设置不同的日期格式[^2]。
- **无参构造器**:
创建一个默认模式的 `SimpleDateFormat` 对象。
```java
SimpleDateFormat sdf = new SimpleDateFormat();
```
- **带参数构造器**:
可以传入特定的模式字符串来自定义日期格式。
```java
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
```
#### 2. 常见模式字符及其含义
| 字符 | 含义 |
|------|------------------------|
| y | 表示年份 |
| M | 表示月份 |
| d | 表示天数 |
| H/h | 表示小时 (H为24小时制, h为12小时制) |
| m | 表示分钟 |
| s | 表示秒 |
例如,“yyyy-MM-dd HH:mm:ss”表示完整的日期和时间格式。
#### 3. 格式化日期 (`Date -> String`)
可以使用 `format()` 方法将 `Date` 对象转换成指定格式的字符串。
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class Example {
public static void main(String[] args) {
Date date = new Date(); // 当前时间
// 自定义格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 点 mm 分 ss 秒");
// 将日期格式化为字符串
String formattedDate = sdf.format(date);
System.out.println(formattedDate); // 输出类似于 “2023 年 03 月 15 日 14 点 25 分 36 秒”
}
}
```
此代码展示了如何将当前日期按照中文习惯的方式进行格式化[^3]。
#### 4. 解析字符串为日期 (`String -> Date`)
除了格式化外,还可以利用 `parse()` 方法反向操作——即从字符串解析回 `Date` 对象。需要注意的是,在实际应用中可能会抛出异常,因此建议加上错误处理逻辑。
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ParseExample {
public static void main(String[] args) throws ParseException {
String dateString = "2023-03-15 14:25:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date parsedDate = sdf.parse(dateString);
System.out.println(parsedDate); // 输出原始形式的时间戳
} catch (ParseException e) {
e.printStackTrace();
}
}
}
```
上述例子演示了一个标准 ISO 时间串被成功解析的过程[^4]。
---
### 注意事项
虽然 `SimpleDateFormat` 功能强大,但它并非线程安全的。如果在一个多线程环境中共享同一个实例,则可能导致不可预测的结果。对于这种情况下的解决方案之一是每次调用都重新生成一个新的实例;或者考虑采用更现代的一些替代方案比如 `DateTimeFormatter`(引入 JDK8)[^2]。
---
阅读全文
相关推荐











