Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/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.text.ParseException:不可解析的日期:";2015-08-19T00:00:00;_Java - Fatal编程技术网

java.text.ParseException:不可解析的日期:";2015-08-19T00:00:00;

java.text.ParseException:不可解析的日期:";2015-08-19T00:00:00;,java,Java,我试图用Java解析字符串中的日期。我的字符串是“2015-08-19T00:00:00”,这是我解析它的代码: DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); java.sql.Timestamp date = new java.sql.Timestamp(format.parse(dateString).getTime()); 但是,我在运行代码时收到以下错误消息: java.text.ParseExc

我试图用Java解析字符串中的日期。我的字符串是“2015-08-19T00:00:00”,这是我解析它的代码:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
java.sql.Timestamp date = new java.sql.Timestamp(format.parse(dateString).getTime());
但是,我在运行代码时收到以下错误消息:

java.text.ParseException: Unparseable date: "2015-08-19T00:00:00"
这一定很简单——但我不知道哪里出了问题。

错误的解析模式 解析模式的末尾包含一个
Z
。该符号表示您希望与UTC之间存在偏移。但是您的输入字符串缺少任何偏移量或时区信息。因此,您的数据与您告诉Java的预期不匹配

要么:

  • 从图案中删除
    Z
    ,或
  • 将偏移量信息添加到数据中(首选)
如果您的数据是用来表示某一时刻的,那么请按字面意思添加一个字符
Z
(Zulu的缩写)。如果要在特定偏移量(如印度)中停留片刻,请附加偏移量(如
+05:30

更好的是:继续阅读,使用新的类

java.time Java8带来了新的类,取代了旧的麻烦的Java.util.Date/.Calendar&Java.text.SimpleDataFormat类


有关更多信息和示例代码,请参见此类似问题。

从格式中删除尾随的
Z
,或者在包含数据的字符串中添加时区。
'T'
T
都不是值日期字符串格式字符。@MarcB See“可以使用单引号(')引用文本以避免解释”。@ANDY TURNER可以更改我的输入格式。我有一个LocalDateTime对象,我正在调用日期格式为“yyyy-MM-dd'T'HH:MM:ssZ”的toString。为了保持解析代码不变,是否可以更改该值?@DasunCathir如果您有
LocalDateTime
,为什么要先转换为字符串,然后再转换为
时间戳
?只需使用
Timestamp.valueOf(LocalDateTime)
(假设是Java8,而不是Joda)。