SimpleDateFormat 创建
1、构造方法
(1)基本介绍
- 默认构造方法,使用默认格式和默认区域设置
public SimpleDateFormat()
- 使用指定格式和默认区域设置
public SimpleDateFormat(String pattern)
- 使用指定格式和指定区域设置
public SimpleDateFormat(String pattern, Locale locale)
(2)参数说明
- pattern:格式字符串由特定的字母组成,每个字母代表一个日期或时间成分,字母的大小写敏感,常用字母如下
| 字母 |
说明 |
| y |
年 |
| M |
月 |
| d |
月中的天数 |
| H |
小时,范围为 0 ~ 23,24 小时制 |
| h |
小时,范围为 1 ~ 12,12 小时制 |
| m |
分钟 |
| s |
秒 |
| S |
毫秒 |
| E |
星期 |
| a |
AM / PM 标记 |
- aLocale:区域设置,用于指定国家 / 地区的语言和格式习惯,例如,
Locale.US、Locale.CHINA
(3)演示
String result = new SimpleDateFormat().format(new Date());
System.out.println(result);
# 输出结果
2025/9/11 上午8:10
String result = new SimpleDateFormat("yyyy-MM-dd EEE").format(new Date());
System.out.println(result);
# 输出结果
2025-09-11 周四
String result = new SimpleDateFormat("yyyy-MM-dd EEE", Locale.US).format(new Date());
System.out.println(result);
# 输出结果
2025-09-11 Thu
2、getDateInstance 方法
(1)基本介绍
- 获取一个专门用于格式化和解析日期部分(年、月、日)的 SimpleDateFormat 对象
- 使用默认格式风格和默认区域设置
public static final DateFormat getDateInstance()
- 使用指定格式风格和默认区域设置
public static final DateFormat getDateInstance(int style)
- 使用指定格式风格和指定区域设置
public static final DateFormat getDateInstance(int style, Locale aLocale)
(2)参数说明
- style:格式化风格,决定了日期显示的详细程度,它是一个 int 常量,定义在 DateFormat 类中
| 常量 |
说明 |
DateFormat.FULL |
完整格式 |
DateFormat.LONG |
长格式 |
DateFormat.MEDIUM |
中等格式 |
DateFormat.SHORT |
短格式 |
- aLocale:区域设置,用于指定国家 / 地区的语言和格式习惯,例如,
Locale.US、Locale.CHINA
(3)演示
String result = SimpleDateFormat.getDateInstance().format(new Date());
System.out.println(result);
# 输出结果
2025年9月10日
Date date = new Date();
String result1 = SimpleDateFormat.getDateInstance(SimpleDateFormat.FULL).format(date);
String result2 = SimpleDateFormat.getDateInstance(SimpleDateFormat.LONG).format(date);
String result3 = SimpleDateFormat.getDateInstance(SimpleDateFormat.MEDIUM).format(date);
String result4 = SimpleDateFormat.getDateInstance(SimpleDateFormat.SHORT).format(date);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
# 输出结果
2025年9月10日星期三
2025年9月10日
2025年9月10日
2025/9/10
Date date = new Date();
String result1 = SimpleDateFormat.getDateInstance(SimpleDateFormat.FULL, Locale.US).format(date);
String result2 = SimpleDateFormat.getDateInstance(SimpleDateFormat.LONG, Locale.US).format(date);
String result3 = SimpleDateFormat.getDateInstance(SimpleDateFormat.MEDIUM, Locale.US).format(date);
String result4 = SimpleDateFormat.getDateInstance(SimpleDateFormat.SHORT, Locale.US).format(date);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
# 输出结果
Wednesday, September 10, 2025
September 10, 2025
Sep 10, 2025
9/10/25
3、getTimeInstance 方法
(1)基本介绍
- 获取一个专门用于格式化和解析时间部分(时、分、秒、时区)的 SimpleDateFormat 对象
- 使用默认格式风格和默认区域设置
public static final DateFormat getTimeInstance()
- 使用指定格式风格和默认区域设置
public static final DateFormat getTimeInstance(int style)
- 使用指定格式风格和指定区域设置
public static final DateFormat getTimeInstance(int style, Locale aLocale)
(2)参数说明
- style:格式化风格,决定了时间显示的详细程度,它是一个 int 常量,定义在 DateFormat 类中
| 常量 |
说明 |
DateFormat.FULL |
完整格式 |
DateFormat.LONG |
长格式 |
DateFormat.MEDIUM |
中等格式 |
DateFormat.SHORT |
短格式 |
- aLocale:区域设置,用于指定国家 / 地区的语言和格式习惯,例如,
Locale.US、Locale.CHINA
(3)演示
String result = SimpleDateFormat.getTimeInstance().format(new Date());
System.out.println(result);
# 输出结果
下午9:01:34
Date date = new Date();
String result1 = SimpleDateFormat.getTimeInstance(SimpleDateFormat.FULL).format(date);
String result2 = SimpleDateFormat.getTimeInstance(SimpleDateFormat.LONG).format(date);
String result3 = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM).format(date);
String result4 = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT).format(date);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
# 输出结果
中国标准时间 下午9:01:34
CST 下午9:01:34
下午9:01:34
下午9:01
Date date = new Date();
String result1 = SimpleDateFormat.getTimeInstance(SimpleDateFormat.FULL, Locale.US).format(date);
String result2 = SimpleDateFormat.getTimeInstance(SimpleDateFormat.LONG, Locale.US).format(date);
String result3 = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM, Locale.US).format(date);
String result4 = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT, Locale.US).format(date);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
# 输出结果
9:01:34 PM China Standard Time
9:01:34 PM CST
9:01:34 PM
9:01 PM
4、getDateTimeInstance 方法
(1)基本介绍
- 获取一个专门用于格式化和解析日期时间部分的 SimpleDateFormat 对象
- 使用默认日期时间格式风格和默认区域设置
public static final DateFormat getDateTimeInstance()
- 使用指定日期时间格式风格和默认区域设置
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
- 使用指定日期时间格式风格和指定区域设置
(2)参数说明
- dateStyle、timeStyle:格式化风格,决定了日期时间显示的详细程度,它是一个 int 常量,定义在 DateFormat 类中
| 常量 |
说明 |
DateFormat.FULL |
完整格式 |
DateFormat.LONG |
长格式 |
DateFormat.MEDIUM |
中等格式 |
DateFormat.SHORT |
短格式 |
- aLocale:区域设置,用于指定国家 / 地区的语言和格式习惯,例如,
Locale.US、Locale.CHINA
(3)演示
String result = SimpleDateFormat.getDateTimeInstance().format(new Date());
System.out.println(result);
# 输出结果
2025年9月10日 下午9:01:34
Date date = new Date();
String result1 = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.FULL, SimpleDateFormat.FULL).format(date);
String result2 = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG, SimpleDateFormat.LONG).format(date);
String result3 = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.MEDIUM, SimpleDateFormat.MEDIUM).format(date);
String result4 = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT).format(date);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
# 输出结果
2025年9月10日星期三 中国标准时间 下午9:01:34
2025年9月10日 CST 下午9:01:34
2025年9月10日 下午9:01:34
2025/9/10 下午9:01
Date date = new Date();
String result1 = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.FULL, SimpleDateFormat.FULL, Locale.US).format(date);
String result2 = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG, SimpleDateFormat.LONG, Locale.US).format(date);
String result3 = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.MEDIUM, SimpleDateFormat.MEDIUM, Locale.US).format(date);
String result4 = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT, Locale.US).format(date);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
# 输出结果
Wednesday, September 10, 2025 at 9:01:34 PM China Standard Time
September 10, 2025 at 9:01:34 PM CST
Sep 10, 2025, 9:01:34 PM
9/10/25, 9:01 PM
Java 日期时间 API 推荐
1、基本介绍
| 旧版 |
新版 |
java.util.Date |
java.time.Instant |
java.util.Calendar |
java.time.LocalDate
java.time.LocalTime
java.time.LocalDateTime |
java.text.SimpleDateFormat |
java.time.format.DateTimeFormatter |
java.sql.Date
java.sql.Time
java.sql.Timestamp |
直接使用 java.time.LocalDate
java.time.LocalTime
java.time.LocalDateTime
配合 JDBC 4.2+ |
2、演示
- Instant
Instant instant = Instant.now();
- LocalDate、LocalTime、LocalDateTime
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
LocalDate date = LocalDate.of(2026, 5, 11);
LocalTime time = LocalTime.of(14, 30, 25);
LocalDateTime dateTime = LocalDateTime.of(2026, 5, 11, 14, 30, 25);
- DateTimeFormatter
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String str = dateTime.format(formatter);
System.out.println(str);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parsed = LocalDateTime.parse("2026-05-11 14:30:25", formatter);
System.out.println(parsed);
所有评论(0)