【simpledateformat用法】在Java开发中,`SimpleDateFormat` 是一个非常常用的类,用于处理日期和时间的格式化与解析。它属于 `java.text` 包,能够将 `Date` 对象转换为字符串,也可以将字符串解析为 `Date` 对象。以下是对 `SimpleDateFormat` 的基本用法进行总结,并通过表格形式展示常用格式符号及其含义。
一、SimpleDateFormat 基本用法
`SimpleDateFormat` 的构造函数接受一个模式字符串(pattern),用于定义日期和时间的格式。例如:
```java
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
```
该代码创建了一个可以将日期格式化为“年-月-日”的对象。
1. 格式化日期
使用 `format()` 方法将 `Date` 对象转换为字符串:
```java
Date date = new Date();
String formattedDate = sdf.format(date);
System.out.println(formattedDate); // 输出类似 "2025-04-05"
```
2. 解析日期
使用 `parse()` 方法将字符串解析为 `Date` 对象:
```java
String input = "2025-04-05";
Date parsedDate = sdf.parse(input);
System.out.println(parsedDate); // 输出对应的时间对象
```
> 注意:`parse()` 方法可能会抛出 `ParseException`,需进行异常处理。
二、常用格式符号表
| 符号 | 含义 | 示例 |
| 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 |
| z | 时区 | GMT+8 |
三、常见用法示例
| 场景 | 示例代码 | 输出示例 |
| 简单日期格式 | `new SimpleDateFormat("yyyy-MM-dd")` | 2025-04-05 |
| 完整日期时间 | `new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")` | 2025-04-05 14:30:45 |
| 带时区的日期 | `new SimpleDateFormat("yyyy-MM-dd z")` | 2025-04-05 GMT+8 |
| 星期几 | `new SimpleDateFormat("yyyy-MM-dd E")` | 2025-04-05 星期五 |
四、注意事项
1. 线程安全问题:`SimpleDateFormat` 不是线程安全的,如果在多线程环境下使用,建议使用 `ThreadLocal` 或改用 `DateTimeFormatter`(Java 8 及以上版本推荐)。
2. 异常处理:使用 `parse()` 方法时,必须捕获或声明 `ParseException`。
3. 本地化支持:可以通过设置 `Locale` 来改变日期格式的显示方式,如 `new SimpleDateFormat("yyyy-MM-dd", Locale.US)`。
通过合理使用 `SimpleDateFormat`,我们可以轻松地实现日期和时间的格式化与解析,提升程序的可读性和用户体验。


