【simpledateformat用法】在Java开发中,`SimpleDateFormat` 是一个非常常用的类,用于格式化和解析日期与时间。它属于 `java.text` 包,能够将 `Date` 对象转换为特定格式的字符串,也可以将字符串解析为 `Date` 对象。以下是对 `SimpleDateFormat` 常见用法的总结。
一、基本用法
| 操作 | 示例代码 | 说明 |
| 创建实例 | `SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");` | 定义日期格式,如年-月-日 |
| 格式化日期 | `String dateStr = sdf.format(new Date());` | 将当前日期转换为指定格式的字符串 |
| 解析字符串 | `Date date = sdf.parse("2025-04-05");` | 将字符串按指定格式解析为 `Date` 对象 |
二、常用格式符号
| 符号 | 含义 | 示例 |
| y | 年份 | 2025 |
| M | 月份(1-12) | 04 |
| d | 日(1-31) | 05 |
| H | 小时(0-23) | 14 |
| m | 分钟(0-59) | 30 |
| s | 秒(0-59) | 45 |
| S | 毫秒 | 123 |
| E | 星期几 | 星期三 |
| a | AM/PM 标识 | 上午/下午 |
三、注意事项
- 线程安全问题:`SimpleDateFormat` 不是线程安全的,多线程环境下建议使用 `DateTimeFormatter`(Java 8+)。
- 默认时区:如果不指定时区,默认使用系统时区。
- 异常处理:在使用 `parse()` 方法时,需捕获 `ParseException` 异常。
四、示例代码
```java
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// 定义格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 获取当前时间并格式化
String now = sdf.format(new Date());
System.out.println("当前时间:" + now);
// 解析字符串
try {
Date parsedDate = sdf.parse("2025-04-05 14:30:00");
System.out.println("解析后的时间:" + parsedDate);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
五、总结
| 项目 | 内容 |
| 类名 | `SimpleDateFormat` |
| 功能 | 格式化与解析日期 |
| 常用格式 | `yyyy-MM-dd`, `HH:mm:ss` 等 |
| 注意事项 | 非线程安全、需要处理异常 |
| 替代方案 | Java 8 中推荐使用 `java.time` 包中的 `DateTimeFormatter` |
通过合理使用 `SimpleDateFormat`,可以更方便地处理日常开发中的日期与时间操作。对于更复杂的场景,建议结合 `Calendar` 或 Java 8 的新日期 API 进行扩展。


