+-
java – simpledateformat使用’Z’文字解析日期[复制]
参见英文答案 > Converting ISO 8601-compliant String to java.util.Date                                    26个
我试图解析一个看起来像这样的日期:

2010-04-05T17:16:00Z

这是每个http://www.ietf.org/rfc/rfc3339.txt的有效日期.“Z”字面意思“暗示UTC
   是指定时间的首选参考点.“

如果我尝试使用SimpleDateFormat和此模式解析它:

yyyy-MM-dd'T'HH:mm:ss

它将被解析为2010年4月5日17:16:00美国东部时间2010年

SimpleDateFormat无法使用以下模式解析字符串:

yyyy-MM-dd'T'HH:mm:ssz
yyyy-MM-dd'T'HH:mm:ssZ

我可以显式设置TimeZone在SimpleDateFormat上使用以获得预期的输出,但我不认为这是必要的.有什么我想念的吗?有替代日期解析器吗?

最佳答案
在该模式中,包含’z’日期时间组件表示时区格式需要符合 General time zone“标准”,其示例是太平洋标准时间;太平洋标准时间;格林尼治标准时间08:00.

“Z”表示时区符合RFC 822 time zone标准,例如-0800.

我想你需要一个DatatypeConverter ……

@Test
public void testTimezoneIsGreenwichMeanTime() throws ParseException {
    final Calendar calendar = javax.xml.bind.DatatypeConverter.parseDateTime("2010-04-05T17:16:00Z");
    TestCase.assertEquals("gotten timezone", "GMT+00:00", calendar.getTimeZone().getID());
}
点击查看更多相关文章

转载注明原文:java – simpledateformat使用’Z’文字解析日期[复制] - 乐贴网