日期和时间在日常开发中经常需要进行格式化和解析操作。Java中提供了DateTimeFormatter
类来处理日期和时间的格式化,它是线程安全的,可以根据传入的模式将日期和时间格式化为指定的字符串,也可以将字符串解析为对应的日期和时间对象。本文将对DateTimeFormatter
的使用进行详细解析,并说明常见的日期和时间格式化模式。
1. DateTimeFormatter
的获取
DateTimeFormatter
类的实例可以通过以下几种方式获取:
1.1 预定义的格式器
DateTimeFormatter
类提供了一些预定义的格式器,可以直接使用这些格式器进行日期和时间的格式化和解析。例如:
DateTimeFormatter.ISO_DATE
:ISO 8601日期格式,例如:"2022-12-31"DateTimeFormatter.ISO_TIME
:ISO 8601时间格式,例如:"23:59:59"DateTimeFormatter.ISO_DATE_TIME
:ISO 8601日期时间格式,例如:"2022-12-31T23:59:59"
1.2 自定义格式器
除了使用预定义的格式器,还可以使用DateTimeFormatter
的工厂方法来自定义格式器。例如:
// 根据模式字符串创建格式器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 根据模式字符串和地区创建格式器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
2. 日期和时间的格式化
日期和时间格式化是将日期和时间对象格式化为指定的字符串。DateTimeFormatter
提供了format
方法来实现格式化操作。
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = formatter.format(now);
System.out.println(formattedDateTime);
以上代码将当前的日期和时间格式化为"yyyy-MM-dd HH:mm:ss"的字符串输出。
3. 字符串到日期和时间的解析
字符串到日期和时间的解析是将格式化后的字符串解析为对应的日期和时间对象。DateTimeFormatter
提供了parse
方法来实现解析操作。
String dateTimeString = "2022-12-31 23:59:59";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter);
System.out.println(parsedDateTime);
以上代码将"2022-12-31 23:59:59"的字符串解析为LocalDateTime
类型的日期和时间对象输出。
4. 常见的日期和时间格式化模式
DateTimeFormatter
支持的日期和时间格式化模式如下:
y
:年M
:月d
:日H
:时(0-23)h
:时(0-12)m
:分s
:秒S
:毫秒a
:上午/下午标记E
:星期几z
:时区偏移
以下是一些常见的日期和时间格式化模式的示例:
yyyy-MM-dd
:年-月-日,例如:"2022-12-31"yyyy/MM/dd
:年/月/日,例如:"2022/12/31"yyyyMMdd
:年月日,例如:"20221231"HH:mm:ss
:时:分:秒,例如:"23:59:59"hh:mm:ss a
:时:分:秒 上午/下午,例如:"11:59:59 PM"yyyy-MM-dd HH:mm:ss
:年-月-日 时:分:秒,例如:"2022-12-31 23:59:59"
此外,还可以通过在模式字符串前添加'
字符来格式化特殊字符,例如'yyyy-MM-dd'
将使得yyyy
被原样输出。
5. 总结
DateTimeFormatter
是Java中用于日期和时间格式化的重要类,可以将日期和时间对象格式化为指定的字符串,也可以将字符串解析为对应的日期和时间对象。本文介绍了DateTimeFormatter
的获取方式、日期和时间的格式化、字符串到日期和时间的解析,以及常见的日期和时间格式化模式。希望可以帮助读者更好地使用DateTimeFormatter
进行日期和时间的格式化操作。
本文来自极简博客,作者:樱花飘落,转载请注明原文链接:Java中的日期与时间格式化:DateTimeFormatter详解