我尝试使用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。
答案 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”;
这将根据格式解析您的日期..
希望有所帮助