使用SimpleDateFormat解析日期

时间:2013-07-19 07:09:37

标签: java simpledateformat

我尝试使用SimpleDateFormat解析此字符串20130718T090000Z。我喜欢这个:

        String timeString= "20130718T090000Z";
        DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmssZ");
        Date date= dateFormat.parse(timeString);

我收到了一个Unparsable错误。从这里引用http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#rfc822timezone我发现我没有做错任何事,或者我做错了? TKS。

4 个答案:

答案 0 :(得分:5)

使用此格式字符串"yyyyMMdd'T'HHmmss'Z'"。它没有解析的原因是,输入最后没有可解析的字符Z"20130718T090000Z"

答案 1 :(得分:2)

Z适用于时区。您没有在日期字符串中提供时区。

你应该做一些像String timeString= "20130718T090000-0700";

这样的事情

如果您想将Z视为常量,则需要将格式更改为yyyyMMdd'T'HHmmss'Z'

答案 2 :(得分:0)

您遇到的问题是时间Z中的String未被识别为有效时区。

使用Java 6,您必须自己处理时区Z,然后将其删除或将其替换为+0000

答案 3 :(得分:0)

你必须在输入字符串中给出Z的值。 as String timeString =“20130718T090000 + 0000”;

这将根据格式解析您的日期..

希望有所帮助