代码:
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也会得到预期的结果,尽管这显然不是一个确凿的测试。
答案 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);