🔔简介

在Java中,DateTimeFormatter类用于格式化和解析日期时间对象。它是日期时间格式化的强大而灵活的工具。

🔔作用

🌵1.本地化时间

本地化时间指根据指定的语言环境显示时间

Java中DateTimeFormatter的使用方法和案例-LMLPHP

1.1.创建DateTimeFormatter时指定Locale

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA);

1.2.使用该DateTimeFormatter格式化日期时间

LocalDate date = LocalDate.now();
String cnDate = date.format(formatter); 
这样就可以得到适合中国需求的日期格式"2021-10-01"。

1.3.可以通过Locale.US、Locale.UK等地区,从而得到不同格式

DateTimeFormatter usFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy", Locale.US);
DateTimeFormatter ukFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy", Locale.UK);
LocalDate date = LocalDate.now();
String usDate = date.format(usFormatter); // 10/01/2021
String ukDate = date.format(ukFormatter); // 01/10/2021

1.4.使用预定义的格式化常量指定地区

LocalDate date = LocalDate.now();
String cnDate = date.format(FormatStyle.LONG, Locale.CHINA); 
String frDate = date.format(FormatStyle.FULL, Locale.FRANCE);
🌵2.ISO/RFC规范格式

ISO和RFC定义了标准的日期时间格式,可以直接使用:

LocalDate date = LocalDate.now();

// ISO格式
String isoDate = date.format(ISO_LOCAL_DATE); 

// RFC格式 
String rfcDate = date.format(RFC_1123_DATE_TIME);
🌵3.范式格式化

常见格式化:

年份:

  • YYYY:4位数字表示的年份,例如:2023
  • yyyy:4位数字表示的年份,例如:2023
  • YY:2位数字表示的年份,例如:23

月份:

  • MM:2位数字表示的月份,例如:01表示一月,12表示十二月
  • MMM:缩写形式的月份,例如:Jan表示一月,Dec表示十二月
  • MMMM:完整形式的月份,例如:January表示一月,December表示十二月

日:

  • DD dd:2位数字表示的日期,例如:01表示1号,31表示31号

星期几:

  • ddd:缩写形式的星期几,例如:Mon表示星期一,Sun表示星期日
  • dddd:完整形式的星期几,例如:Monday表示星期一,Sunday表示星期日

时间:

  • HH:24小时制的小时,例如:00表示午夜12点,23表示晚上11点
  • hh:12小时制的小时,例如:01表示上午1点,12表示下午12点
  • mm:分钟,例如:00表示整点,30表示30分钟
  • ss:秒,例如:00表示整分,59表示59秒
  • a:上午/下午标识,例如:AM表示上午,PM表示下午

参数列表整理:

示例:

String pattern = "G uuuu'年'MMMd'日' ZZZZZ VV";
String format= DateTimeFormatter.ofPattern(pattern).format(ZonedDateTime.now());
System.out.println(format);

格式化结果显示:

公元 2023年10月01日 +08:00 Asia/hangzhou

范式格式化还提供了一些常用的格式化模式:

LocalDateTime dt = LocalDateTime.now();

// SHORT范式格式化  
String shortDt = dt.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT));

// MEDIUM范式格式化
String mediumDt = dt.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)); 

🔔写在最后

如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!
10-02 02:03