yyyy-MM-dd'T'HH:mm:ss和yyyy-MM-dd'T'HH:mm:ssXXX之间的日期格式差异
问题描述:
我正在尝试使用以下两种格式解析日期 2014-12-03T10:05:59.5646 + 08:00
:
I am trying to parse a date 2014-12-03T10:05:59.5646+08:00
using these two formats:
-
yyyy-MM-dd'T'HH:mm:ss
-
yyyy-MM-dd'T'HH:mm:ssXXX
yyyy-MM-dd'T'HH:mm:ss
yyyy-MM-dd'T'HH:mm:ssXXX
何时我使用 yyyy-MM-dd'T'HH:mm:ss
进行解析,效果很好,但是当我解析 yyyy-MM-dd'T 'HH:mm:ssXXX
抛出 ParseException
。
When I parse using yyyy-MM-dd'T'HH:mm:ss
it works fine, but when I parse yyyy-MM-dd'T'HH:mm:ssXXX
a ParseException
is thrown.
哪个是正确的格式来解析日期,以及这两种格式之间到底有什么区别?
Which is the correct format to parse the date and also what exactly is the difference between these two formats?
注意:我无法使用Joda:(
Note : I cannot use Joda :(
答
使用此格式 yyyy-MM-dd'T'HH:mm:ss.SSSSX
来自 SimpleDateFormat API
From SimpleDateFormat
API
//Letter Date or Time Component Presentation Example
S Millisecond Number 978
X Time zone ISO 8601 time zone -08; -0800; -08:00
使用情况:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSX");
String date = "2014-12-03T10:05:59.5646+08:00";
System.out.println(format.parse(date));
输出:
Wed Dec 03 03:06:04 CET 2014