使用SimpleDateFormat在Java中解析日期

时间:2015-02-02 16:14:12

标签: date simpledateformat

开发一个我需要解析以下日期的应用程序: 2015-02-02T11:21:51.895Z

使用SimpleDateFormat类。但是我得到了一个Date解析例外。 这是我的代码片段:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ss'Z'");`


 Date qdate = new GregorianCalendar(0,0,0).getTime();
                    try {
                        qdate = sdf.parse(dt);
                    } catch (ParseException e) {


                    }

2 个答案:

答案 0 :(得分:0)

关于您的输入" 2015-02-02T11:21:51.895Z"您应该看到您的假设模式与输入不匹配,因为模式不期望毫秒部分而是文字" Z"。

除此之外,由于以下原因,您使用的模式是错误的:

m = minute
M = month
h = hour of half day (1-12)
H = hour of full day (0-23)
X = timezone designator (because Z is not a literal but stands for UTC+00:00)

所以你需要(请同时参考javadoc):

YYYY-MM-DD' T' HH:MM:ss.SSSX

答案 1 :(得分:0)

您的格式存在错误(为毫秒添加.SSS):

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ss.SSS'Z'");
Date date = sdf.parse("2015-02-02T11:21:51.895Z");