+-
![java – simpledateformat使用’Z’文字解析日期[复制] java – simpledateformat使用’Z’文字解析日期[复制]](/img/no_img.png)
参见英文答案 > 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’文字解析日期[复制] - 乐贴网