GWT 无法解析像 BST 和 EDT 这样的时区

GWT cannot parse timezones like BST ans EDT

我对 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确实。

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