使用 SimpleDateFormat 和 'Z' 文字解析 ISO 8601 日期
问题:
尝试使用具有各种模式的 SimpleDateFormat 类解析包含“Z”时区文字的 ISO 8601 日期字符串无法返回正确的 UTC 时间。具体来说,日期“2010-04-05T17:16:00Z”被解析为“Mon Apr 05 17:16:00 EDT 2010”,尽管“Z”文字表示 UTC。
解决方案:
SimpleDateFormat 类默认无法处理 ISO 8601 格式的时间戳。然而,在 Java 7 中,引入了一种新模式来专门处理这种情况:
yyyy-MM-dd'T'HH:mm:ssX
此模式需要“X”时区后缀,它可以表示“Z”文字来指示 UTC。使用此模式时,SimpleDateFormat 会正确地将日期解析为其 UTC 等效值。
替代日期解析器:
如果 SimpleDateFormat 不能满足您的需求,您还可以考虑使用替代日期解析库,例如 Joda-Time 或 ThreeTen-Backport,它们对 ISO 8601 日期和时区文字有更好的支持。
以上是如何使用 SimpleDateFormat 解析带有 \'Z\' 文字的 ISO 8601 日期?的详细内容。更多信息请关注PHP中文网其他相关文章!