java8日期时间格式化DateTimeFormatter多个格式

发布时间 2024-01-09 14:40:22作者: dirgo

原文地址:datetimeformatter.ofpattern multiple formats-掘金

DateTimeFormatter 是一个用于日期时间格式化和解析的类。使用 ofPattern 方法可以创建一个格式化器,该方法接受一个日期时间格式的字符串作为参数。

如果您需要在同一个 DateTimeFormatter 对象中支持多种不同的日期时间格式,可以使用 ofPattern 方法的重载形式,将多个格式字符串放在一个数组中作为参数。例如:

 
java
复制代码
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
    "[yyyy-MM-dd'T'HH:mm:ss.SSS'Z'][yyyy-MM-dd'T'HH:mm:ss.SSS][yyyy-MM-dd'T'HH:mm:ss][yyyy-MM-dd]"
);

上面的代码中,DateTimeFormatter 对象 formatter 支持多种不同的日期时间格式,包括:

  • yyyy-MM-dd'T'HH:mm:ss.SSS'Z':带时区的完整日期时间格式,例如:2022-02-25T15:30:45.123Z。
  • yyyy-MM-dd'T'HH:mm:ss.SSS:不带时区的完整日期时间格式,例如:2022-02-25T15:30:45.123。
  • yyyy-MM-dd'T'HH:mm:ss:不带毫秒和时区的日期时间格式,例如:2022-02-25T15:30:45。
  • yyyy-MM-dd:只有日期的格式,例如:2022-02-25。

当您使用这个多格式的 DateTimeFormatter 对象格式化或解析日期时间时,DateTimeFormatter 会依次尝试使用数组中的格式字符串,直到找到与输入的日期时间匹配的格式为止。

这样,您就可以通过一个 DateTimeFormatter 对象支持多种不同的日期时间格式了。