是否有主日期时间模式适用于每个类似的日期时间模式

2023-12-14

我的消费者收到的时间格式是String有价值20/5/14_9:22:25 or 20/5/14_9:22:5 or 20/5/14_12:22:25 or 20/10/14_9:2:25 etc...

以上所有内容都有非常不同的日期时间模式yy/MM/dd_HH:mm:ss并且可以存在多种具有单位数日、月、小时、分钟和/或秒的可能性。

有没有我可以使用的主模式DateTimeFormatter.ofPattern(format)哪个适用于上述所有模式?


图案看起来都一样

      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yy/M/dd_H:mm:s");
      LocalDate parsedDate = LocalDate.parse("20/5/14_9:22:25", formatter);
      System.out.println(parsedDate);
      parsedDate = LocalDate.parse("20/5/14_9:22:5", formatter);
      System.out.println(parsedDate);
      parsedDate = LocalDate.parse("20/10/14_9:22:25", formatter);
      System.out.println(parsedDate);  

output

2020-05-14
2020-05-14
2020-10-14

违反直觉但非常实用,例如对于数字第一个模式字母M or H,并不意味着一位数字,而是“尽可能多的数字”。所以M解析两者5 and 10(乃至05). H parses 9 and 12等。通过对比两个模式字母,例如MM or HH, 正好表示两位数,因此无法解析 5 的月份或 9 的小时。它需要05 or 09。或者正如文档所说:

Number:如果字母数为 1,则使用最少的位数输出该值,并且不进行填充。否则, 位数用作输出字段的宽度,其中 必要时用零填充值。 ……

因此,如果您需要接受一位数的月份日或一位数的分钟数,也可以使用一个模式字母d and m, 分别。

但有一个小时29(正如您在问题的早期版本中所做的那样)是错误的。

文档链接: DateTimeFormatter

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有主日期时间模式适用于每个类似的日期时间模式 的相关文章

随机推荐