Java中的日期与时间格式化:DateTimeFormatter详解

樱花飘落 2020-01-05 ⋅ 18 阅读

日期和时间在日常开发中经常需要进行格式化和解析操作。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进行日期和时间的格式化操作。


全部评论: 0

    我有话说: