simpledateformat解析日期与'Z'文字

simpledateformat解析日期与'Z'文

我试图解析一个看起来像这样的日期:

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上使用以获得预期的输出,但我不认为这是必要的。有什么我想念的吗?有替代日期解析器吗?


白衣非少年
浏览 602回答 3
3回答

慕田峪7331174

在该模式中,包含'z'日期时间组件表示时区格式需要符合通用时区 “标准”,其示例是Pacific Standard Time; PST; GMT-08:00。“Z”表示时区符合RFC 822时区标准,例如-0800。我想你需要一个DatatypeConverter ......@Testpublic 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());}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java