2

代码:

    DateTimeFormat dateFormat = DateTimeFormat
            .getFormat("EEE MMM dd HH:mm:ss zzz yyyy");

    Date date = dateFormat.parse("Wed May 30 18:33:22 PDT 2012");

结果:

Uncaught java.lang.IllegalArgumentException: Wed May 30 18:33:22 PDT 2012

为什么?

我已经根据文档检查并仔细检查了我的模式。将模式插入SimpleDateFormat 测试器也会得到预期的结果,尽管这显然不是一个决定性的测试。

4

1 回答 1

4

根据您提到的文档,日期解析的支持有限:

解析的时区支持是有限的。仅支持标准 GMT 和 RFC 格式。不支持使用时区 ID 的时区规范(如 America/Los_Angeles)、时区名称(如 PST、太平洋标准时间)。

进一步来说

在当前实现中,时区解析仅支持 GMT:hhmm、GMT:+hhmm 和 GMT:-hhmm。

因此,以下代码可以正常工作:

    DateTimeFormat dateFormat = DateTimeFormat
            .getFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    Date date = dateFormat.parse("Thu May 31 09:45:21  GMT-07:00 2012");
    GWT.log("Date "+date);
于 2012-05-31T04:32:31.940 回答