java - 为什么此代码会生成错误 : "unparseable date"

标签 java datetime simpledateformat

我正在尝试使用 SimpleDateFormat 类从该字符串中解析 DateTime:

Mon Jan 10 2011 01:15:00 GMT+0000 (GMT Standard Time)

我尝试了以下格式字符串:

String example = "Mon Jan 10 2011 01:15:00 GMT+0000 (GMT Standard Time)";
SimpleDateFormat formatter = new SimpleDateFormat("E M d y H:m:s z");
try
{
    Date exampleDate = formatter.parse(example);
    LOGGER.warn(exampleDate.toString());
}
catch(Exception e)
{
    LOGGER.warn(e.getMessage(), e);
}

但它会生成错误:

Unparseable date: "Mon Jan 10 2011 01:15:00 GMT+0000 (GMT Standard Time)"

所以我尝试删除示例字符串的括号结束部分:

String example = "Sun Jan 09 2011 22:00:00 GMT+0000";

但它会产生相同的错误。

WARNING: Unparseable date: "Sun Jan 09 2011 22:00:00 GMT+0000"
java.text.ParseException: Unparseable date: "Sun Jan 09 2011 22:00:00 GMT+0000"

关于如何解决这个问题有任何提示吗?

最佳答案

根据http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html格式必须是:

"E M d y H:m:s zZ"

这包括一般时区和 RFC 822 时区。

或者您可以将输入日期更改为:

Mon Jan 10 2011 01:15:00 GMT+00:00

它只能容纳z

(注意最后一部分的冒号。)

关于java - 为什么此代码会生成错误 : "unparseable date",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664420/

相关文章:

java - 连接池模式

java - 如何根据启动 Intent 来更改 Activity 内容?

java - 将输入字段与一列通配符匹配

java - mongodb + java + iso 日期搜索

java - 如何计算提供两个日期的老化?

java - 为什么这个 SimpleDateFormat 不能解析这个日期字符串?

java - Python 代码比 Java 慢 60 倍

c# - DateTime.Today 与 DateTime.Now

java - 使用 Date 类将给定日期的字符串与当前日期进行比较时出现 Null 对象引用异常

java - 将 DateTime 从 ISO_INSTANT 转换为从午夜算起的秒数