【发布时间】:2011-02-04 13:45:25
【问题描述】:
我正在尝试解析如下所示的日期:
2010-04-05T17:16:00Z
这是http://www.ietf.org/rfc/rfc3339.txt 的有效日期。 'Z' 字面量(引号)“暗示 UTC 是指定时间的首选参考点。”
如果我尝试使用 SimpleDateFormat 和这种模式来解析它:
yyyy-MM-dd'T'HH:mm:ss
它将被解析为 Mon Apr 05 17:16:00 EDT 2010
SimpleDateFormat 无法解析具有这些模式的字符串:
yyyy-MM-dd'T'HH:mm:ssz
yyyy-MM-dd'T'HH:mm:ssZ
我可以明确设置 TimeZone 以在SimpleDateFormat 上使用以获得预期的输出,但我认为这没有必要。有什么我想念的吗?是否有替代日期解析器?
【问题讨论】:
-
时间戳中的“Z”后缀不应与模式中的 Z 或 z 混淆。在 java 7 中,您可以使用“X”模式字母解析带有 SimpleDateFormat 的 ISO8601 后缀。
-
仅供参考,麻烦的旧日期时间类,如
SimpleTextFormat现在是 legacy,被 java.time 类取代。见Tutorial by Oracle。
标签: java datetime parsing timezone simpledateformat