潜江市网站建设_网站建设公司_GitHub_seo优化
2026/1/6 16:41:06 网站建设 项目流程

Java 中常用的日期和时间格式化转换符大全

Java 中日期和时间的格式化主要通过以下两个类实现:

  • 旧 API(Java 8 之前):java.text.SimpleDateFormat
  • 新 API(Java 8+ 推荐):java.time.format.DateTimeFormatter

两者使用的格式化转换符(pattern letters)基本相同,下面是常用转换符的详细表格。

常用转换符表格(按字母排序)
转换符含义示例输出(假设日期:2026-01-06 14:30:25,周二)说明
G纪元(Era)AD公元前/后
y年(年份)2026(yy → 26)yy 为两位年份
Y周所在年(Week year)2026很少用
M月份01(MM)
1(M)
January(MMMM)
Jan(MMM)
M 个数决定显示方式
L独立月份(Stand-alone month)与 M 类似,但用于某些语言的独立形式很少用
d月中天(Day of month)06(dd)
6(d)
D年中天(Day of year)0061月1日为001
E星期(Day of week)Tuesday(EEEE)
Tue(EEE)
E 个数决定长短
u周中天数字(1=周一)2ISO 标准
a上/下午标记PM
H24小时制小时(0-23)14
k24小时制小时(1-24)14
K12小时制小时(0-11)2
h12小时制小时(1-12)2
m分钟30
s25
S毫秒000(SSS)
0(S)
S 个数决定位数
z时区(通用)GMT+08:00
Z时区(RFC 822)+0800
X时区(ISO 8601)+08
+0800(XX)
Z(X)
推荐使用
转义单引号用于输出文字,如 yyyy’年’单引号需成对 ‘’
常见格式化模式示例
模式输出示例说明
yyyy-MM-dd2026-01-06最常见的日期格式(ISO)
yyyy/MM/dd2026/01/06
yyyy年MM月dd日2026年01月06日中文常见
yyyy-MM-dd HH:mm:ss2026-01-06 14:30:25完整日期时间(24小时)
yyyy-MM-dd hh:mm:ss a2026-01-06 02:30:25 PM12小时带上下午
EEEE yyyy-MM-ddTuesday 2026-01-06带星期
yyyy-MM-dd’T’HH:mm:ss2026-01-06T14:30:25ISO 8601 基本格式
yyyy-MM-dd HH:mm:ss.SSS2026-01-06 14:30:25.000带毫秒
yyyy-MM-dd HH:mm:ss XXX2026-01-06 14:30:25 +08:00带时区(推荐)
使用示例

1. 使用 SimpleDateFormat(旧 API)

importjava.text.SimpleDateFormat;importjava.util.Date;Datedate=newDate();SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");Stringstr=sdf.format(date);System.out.println(str);// 输出:2026-01-06 14:30:25

2. 使用 DateTimeFormatter(新 API,推荐)

importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;LocalDateTimenow=LocalDateTime.now();DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日 EEEE HH:mm");Stringstr=now.format(formatter);System.out.println(str);// 输出:2026年01月06日 星期二 14:30
预定义格式(DateTimeFormatter 新 API 提供)

Java 8+ 的DateTimeFormatter还提供了常用预定义格式,无需手动写 pattern:

DateTimeFormatter.ISO_LOCAL_DATE// 2026-01-06DateTimeFormatter.ISO_LOCAL_TIME// 14:30:25DateTimeFormatter.ISO_LOCAL_DATE_TIME// 2026-01-06T14:30:25DateTimeFormatter.ISO_OFFSET_DATE_TIME// 2026-01-06T14:30:25+08:00DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)// 带本地化星期等
总结建议
  • 日常开发优先使用java.time包(LocalDateTime + DateTimeFormatter),线程安全、API 更清晰。
  • 格式化字符串:最常用的是yyyy-MM-dd HH:mm:ss
  • 时区处理:推荐使用XXXX显示时区,避免歧义。
  • 中文场景:常用yyyy年MM月dd日 HH:mm:ss

掌握这些转换符,就能灵活处理 Java 中几乎所有日期时间格式化需求!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询