DateTimeFormatter
# DateTimeFormatter
使用 DateTimeFormatter
,可以自定义输出格式,或解析一个字符串为 LocalDateTime
(新 API,可取代 SimpleDateFormat
)。另外,DateTimeFormatter
是线程安全的
# 入门案例
//自定义格式化
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
System.out.println(dtf.format(LocalDateTime.now())); //2022/12/22 21:33:17
//解析字符串
LocalDateTime dt = LocalDateTime.parse("2022/05/21 21:13:14", dtf);
System.out.println(dt); //2022-05-21T21:13:14
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 指定 Locale
我们可以在传入格式化字符串时,同时指定 Locale
:
DateTimeFormatter.ofPattern("yyyy-MMMM-dd HH:mm", Locale.US);
DateTimeFormatter.ofPattern("yyyy-MMMM-dd HH:mm", Locale.CHINA);
1
2
2
输出
System.out.println(dftUS.format(LocalDateTime.now())); //2022-December-27 17:16
System.out.println(dftChina.format(LocalDateTime.now())); //2022-十二月-27 17:16
1
2
2
# 其他优点
SimpleDateFormat
不是线程安全的,使用的时候,只能在方法内部创建新的局部变量。
和 SimpleDateFormat
不同的是,DateTimeFormatter
不但是不变对象,它还是线程安全的。而 DateTimeFormatter
可以只创建一个实例,到处引用。
上次更新: 2024/10/1 16:19:31
- 01
- 中国网络防火长城简史 转载10-12
- 03
- 公告:博客近期 RSS 相关问题10-02