我是GWT的新手。

我一直试图解析格式为“ dd-MMM-yyyy HH:mm z”的日期,但是当时区为EDT或BST时出现异常。

GWT在解析时不支持这些时区吗?如果是这样,是否可以使用EDT解析日期呢?

请帮忙。

程式码片段:

DateTimeFormat dateParser = DateTimeFormat.getFormat("dd-MMM-yyyy HH:mm z");
String fomattedDate = dateParser.format(date,Timezone.createTimeZone(TimeZoneConstants.americaNewYork));
Date newDate = dateTimeParser.parse(formattedDate);


这行给我例外。

阅读DateTimeFormat的文档后,它表示解析时支持较少的时区。

最佳答案

该代码对我有用:

TimeZoneConstants timeZoneConstants = GWT.create(TimeZoneConstants.class);
DateTimeFormat dateParser = DateTimeFormat.getFormat("dd-MMM-yyyy HH:mm Z");
String formattedDate = dateParser.format(date, TimeZone.createTimeZone(timeZoneConstants.americaNewYork()));
Date newDate = dateParser.parse(formattedDate);


我通过延迟绑定创建了TimeZoneConstants,并将格式更改为dd-MMM-yyyy HH:mm Z(大写Z)-使用z确实得到了IllegalArgumentException

如果仍然遇到问题,请尝试深入检查解析功能以找出确切的问题。

09-26 22:56