DateTimeFormat.parse()失败

时间:2012-05-31 03:47:43

标签: parsing gwt datetime-format

代码:

    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

为什么?

我已经检查过并且针对the docs重复检查了我的模式。将模式插入SimpleDateFormat tester也会得到预期的结果,尽管这显然不是一个确凿的测试。

1 个答案:

答案 0 :(得分:4)

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

  

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

更具体地说

  

在当前实现中,时区解析仅支持   GMT:嗯,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);