SimpleDateFormat 创建

1、构造方法
(1)基本介绍
  1. 默认构造方法,使用默认格式和默认区域设置
public SimpleDateFormat()
  1. 使用指定格式和默认区域设置
public SimpleDateFormat(String pattern)
  1. 使用指定格式和指定区域设置
public SimpleDateFormat(String pattern, Locale locale)
(2)参数说明
  1. pattern:格式字符串由特定的字母组成,每个字母代表一个日期或时间成分,字母的大小写敏感,常用字母如下
字母 说明
y
M
d 月中的天数
H 小时,范围为 0 ~ 23,24 小时制
h 小时,范围为 1 ~ 12,12 小时制
m 分钟
s
S 毫秒
E 星期
a AM / PM 标记
  1. aLocale:区域设置,用于指定国家 / 地区的语言和格式习惯,例如,Locale.USLocale.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 对象
  1. 使用默认格式风格和默认区域设置
public static final DateFormat getDateInstance()
  1. 使用指定格式风格和默认区域设置
public static final DateFormat getDateInstance(int style)
  1. 使用指定格式风格和指定区域设置
public static final DateFormat getDateInstance(int style, Locale aLocale)
(2)参数说明
  1. style:格式化风格,决定了日期显示的详细程度,它是一个 int 常量,定义在 DateFormat 类中
常量 说明
DateFormat.FULL 完整格式
DateFormat.LONG 长格式
DateFormat.MEDIUM 中等格式
DateFormat.SHORT 短格式
  1. aLocale:区域设置,用于指定国家 / 地区的语言和格式习惯,例如,Locale.USLocale.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 对象
  1. 使用默认格式风格和默认区域设置
public static final DateFormat getTimeInstance()
  1. 使用指定格式风格和默认区域设置
public static final DateFormat getTimeInstance(int style)
  1. 使用指定格式风格和指定区域设置
public static final DateFormat getTimeInstance(int style, Locale aLocale)
(2)参数说明
  1. style:格式化风格,决定了时间显示的详细程度,它是一个 int 常量,定义在 DateFormat 类中
常量 说明
DateFormat.FULL 完整格式
DateFormat.LONG 长格式
DateFormat.MEDIUM 中等格式
DateFormat.SHORT 短格式
  1. aLocale:区域设置,用于指定国家 / 地区的语言和格式习惯,例如,Locale.USLocale.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 对象
  1. 使用默认日期时间格式风格和默认区域设置
public static final DateFormat getDateTimeInstance()
  1. 使用指定日期时间格式风格和默认区域设置
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
  1. 使用指定日期时间格式风格和指定区域设置
(2)参数说明
  1. dateStyle、timeStyle:格式化风格,决定了日期时间显示的详细程度,它是一个 int 常量,定义在 DateFormat 类中
常量 说明
DateFormat.FULL 完整格式
DateFormat.LONG 长格式
DateFormat.MEDIUM 中等格式
DateFormat.SHORT 短格式
  1. aLocale:区域设置,用于指定国家 / 地区的语言和格式习惯,例如,Locale.USLocale.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+
  • 新版日期时间 API 不可变、线程安全、语义清晰
2、演示
  1. Instant
Instant instant = Instant.now();
  1. 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);
  1. 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);

更多推荐