【发布时间】:2020-09-25 12:59:53
【问题描述】:
我在正确使用DataTimeFormatter 解析日期时间String 时遇到了一些麻烦,格式为:
20200915095318.883[-4:EDT]
我有一个DateTimeFormatter 模式可以生成这种格式,但它不能解析相同的字符串。该模式是:
yyyyMMddHHmmss.SSS'['x':'z']'
如果还有其他更适合此类需求的 DateTime 解析库,我也会很乐意考虑这些库。现在,当我遇到此 DateTime 字符串并手动构建其部分时,我的解决方案是一次性的正则表达式匹配器。这太恶心了。
【问题讨论】:
-
抛出了什么异常?你能发布错误信息吗?
-
如果能看到能重现问题的简洁代码集也很好。
-
我认为这是偏移量的格式,支持的格式(根据JavaDocs of
DateTimeFormatter是+0000; -08; -0830; -08:30; -083015; -08:30:15,因此不支持-4的偏移量,它需要前导零。现在取决于可以提供DateTimeFormatterBuilder的人来解析没有前导零的偏移量。可能有可能,可能不可能,还不知道...... -
I have a DateTimeFormatter pattern that works to produce this format, but it doesn't work to parse the same String. That pattern is: yyyyMMddHHmmss.SSS'['x':'z']'- 这是不正确的。此格式化程序不会产生单个数字的偏移量(即没有日期时间字符串中缺少的前导零)。 -
似乎需要一次性代码,因为需要 DateTimeFormatterBuilder。我会这样做,而不是正则表达式解决方案,但它仍然是一个很臭的解决方案。我很感激帮助。每个人都确认问题在于人们发挥创造力而不是使用行业标准。