Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.text.ParseException:不可解析日期“;yyyy-MM-dd';T';HH:mm:ss.SSSZ日期格式_Java_Parsing_Exception_Datetime_Simpledateformat - Fatal编程技术网

java.text.ParseException:不可解析日期“;yyyy-MM-dd';T';HH:mm:ss.SSSZ日期格式

java.text.ParseException:不可解析日期“;yyyy-MM-dd';T';HH:mm:ss.SSSZ日期格式,java,parsing,exception,datetime,simpledateformat,Java,Parsing,Exception,Datetime,Simpledateformat,如果您能帮助我查找此异常的bug,我将不胜感激: java.text.ParseException: Unparseable date: "2007-09-25T15:40:51.0000000Z" 和以下代码: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); Date date = sdf.parse(timeValue); long mills = date.getTime(); this

如果您能帮助我查找此异常的bug,我将不胜感激:

java.text.ParseException: Unparseable date: "2007-09-25T15:40:51.0000000Z"
和以下代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = sdf.parse(timeValue);
long mills = date.getTime();
this.point.time = String.valueOf(mills);
它抛出带有
Date-Date=sdf.parse(timeValue)的表达式

timeValue=“2007-09-25T15:40:51.0000000 Z”,如在异常中一样


谢谢。

Z
表示时区字符。它需要被引用:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
在中,您还可以使用
X
模式匹配ISO8601时区,其中包括特殊的
Z
(UTC)值:

然而,它似乎需要模式中精确数量的毫秒字符,而“Z”字符模式不需要毫秒字符,这相当不方便。我认为这是因为ISO8601定义还包括“两位数小时”,它们只是数字,因此解析器无法将其与前面的毫秒区分开来


因此,此版本适用于低至秒精度的时间戳,毫秒精度则更低。

或者可能使用X而不是Z,以便Z被接受为ISO8601时区,对于该时区,“Z”被解析为UTC时区指示符,使用X对我有效,但在模式中似乎需要精确数量的S(毫秒)字符,这很奇怪-看我的答案…它在文本中可以使用单引号(')引用,以避免interpretation@Reimeus这个解决方案对我不起作用。我尝试了
'Z'
,但没有得到解析。它只有在我删除Z时才起作用。
IllegalArgumentException:Unknown pattern character'X'
Igor-什么版本的Java会出现这个错误?“X”模式适用于Java 7,在Java 8下也适用于我。我在我的Android项目(Java 8)中使用ThreeTenABP库。@IgorGanapolsky听起来像是你需要发布一个新问题,你的代码和环境的全部细节你甚至需要解析
。SSSZ
?如果只需要日期或时间,请删除
.SSSZ
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX");
Date date = sdf.parse("2007-09-25T15:40:51.0000000Z");