【发布时间】:2021-06-18 08:26:02
【问题描述】:
尝试解析来自第三方来源的传入日期,某些日期按预期工作,其他日期则抛出异常:
Text 'Fri, 11 Jun 2021 02:25:23 +0000' could not be parsed at index 8
查看日期我无法发现它们之间的差异,查看我的格式化程序我看不出我哪里出错了。
失败日期示例:Fri, 11 Jun 2021 02:25:23 +0000
示例通过日期:Sun, 30 May 2021 11:42:03 +0000
我用来解析日期的代码:
ZonedDateTime.parse(incomingDate, DateTimeFormatter.ofPattern("E, d MMM yyyy HH:mm:ss Z"));
我唯一能想到的是一些日期月份是速记的,而另一些则不是(例如 May vs Jun)。
希望得到一些帮助。
【问题讨论】:
-
我已尝试在本地运行您的代码,但没有任何问题。我的输出对于您共享的两个日期都是正确的:
2021-06-11T02:25:23Z和2021-05-30T11:42:03Z。你能分享一下失败的地方吗?也许是错误和堆栈跟踪? -
两者都适合我。您的系统语言和区域是否设置为不将 June 称为“Jun”的地方?如果是这样,请将日期格式化程序的语言环境设置为
withLocale(Locale.ENGLISH)。
标签: java zoneddatetime