Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 1.6接收ParseException,字符串包含ISO 8601格式的日期_Java_Date_Iso - Fatal编程技术网

使用Java 1.6接收ParseException,字符串包含ISO 8601格式的日期

使用Java 1.6接收ParseException,字符串包含ISO 8601格式的日期,java,date,iso,Java,Date,Iso,当我尝试将ISO 8601格式的字符串解析为Java日期类型时,会不断收到ParseException String myDateString = "2014-07-04T22:59:36Z"; TimeZone timeZone = TimeZone.getTimeZone("UTC"); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US); dateFormat.setTimeZ

当我尝试将ISO 8601格式的字符串解析为Java日期类型时,会不断收到ParseException

String myDateString = "2014-07-04T22:59:36Z";  
TimeZone timeZone = TimeZone.getTimeZone("UTC");
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US);
dateFormat.setTimeZone(timeZone);
Date formattedDate = dateFormat.parse(myDateString);
继续返回ParseException:

Unparseable date: "2014-07-04T22:59:36Z"

我可能做错了什么?

您的日期格式中缺少秒数:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
tl;博士 对于Java6和Java7,将ThreeTen Backport库添加到您的项目中。对于Java8和更高版本,Java.time是内置的

Instant.parse( "2014-07-04T22:59:36Z" )
java.time 现代的方法是使用java.time类来取代麻烦的旧的遗留日期时间类,如
SimpleDateFormat
date
Calendar

虽然内置于Java8和更高版本中,但可以使用Java6和Java7的后端口。(见下文)

Instant
该类表示时间线上的一个时刻,分辨率为(小数点的九(9)位)

默认情况下,java.time类使用ISO8601格式。因此,无需指定格式模式。
Instant
类可以直接解析输入字符串

Instant instant = Instant.parse( "2014-07-04T22:59:36Z" );
要生成标准ISO 8601格式的字符串,只需调用
toString

String output = instant.toString();
2014-07-04T22:59:36Z


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • 后来
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,例如、、和。

您应该使用
X
(无引号)而不是
'Z'
。您需要
:ss
几秒钟--
“yyyy-MM-dd'T'HH:MM:ssX”
。可能存在重复的