hoo*_*d82 3 java android simpledateformat parseexception
我很难解析/格式化从Web服务收到的日期字符串.我试过多种方法,但没有运气.
示例日期字符串:
2011-10-05T03:00:00Z
Run Code Online (Sandbox Code Playgroud)
例外:
W/System.err(10072): java.text.ParseException: Unparseable date: "2011-10-05T05:00:00Z" (at offset 10)
W/System.err(10072): at java.text.DateFormat.parse(DateFormat.java:626)
Run Code Online (Sandbox Code Playgroud)
示例代码:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:SSSS");
Date date = formatter.parse(info.AiringTime);
Run Code Online (Sandbox Code Playgroud)
我发现如果我删除日期和时间之间的"T"并用空格替换它,它将格式化正常.有人有什么建议吗?
--UPDATE--
在深入研究API文档之后,我发现了这个:
所有响应DateTime值均为UTC格式.您需要应用UTC偏移量来计算显示的本地时间.
DateTime是以下列格式之一指定的日期和时间值:
UTC格式:YYYY-MM-DDThh:mm:ssZ.例如:2011-03-15T02:00:00Z.
偏移的当地时间:YYYY-MM-DDThh:mm:ss +或 - hh:mm(正偏移或负偏移).例如,美国太平洋时间:2011-03-14T06:00:00-08:00.
有关UTC格式方法的任何建议吗?
Rob*_*Rob 11
你可以尝试:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
String dateString = dateString.replace("Z", "GMT+00:00");
Date date = dateFormat.parse(dateString);
Run Code Online (Sandbox Code Playgroud)
上面的代码应该正确处理在日期中指定时区的情况.由于Z表示UTC/GMT时区,因此它被GMT取代,因此SimpleDateFormat可以正确解释它(如果有人知道的话,我很想知道处理这个位的更简洁方法).
| 归档时间: |
|
| 查看次数: |
7815 次 |
| 最近记录: |