我尝试在GWT中获取所有日期/时间格式模式,使用 DateTimeFormat.PredefinedFormat 来获取当前语言环境的所有模式。但我如何获得其他语言环境的所有模式。
答案 0 :(得分:3)
我找到了一种方法,而不是我想要的通用方式,但在这种情况下它有效。也许有人有更好的解决方案。
private static Date testDateFormates( String dateText ) {
ArrayList<String> locales = new ArrayList<String>();
DateTimeFormatInfo formatDE = new DateTimeFormatInfoImpl_de();
DateTimeFormatInfo formatEN = new DateTimeFormatInfoImpl_en();
DateTimeFormatInfo formatFR = new DateTimeFormatInfoImpl_fr();
DateTimeFormatInfo formatES = new DateTimeFormatInfoImpl_es();
DateTimeFormatInfo formatZH = new DateTimeFormatInfoImpl_zh();
DateTimeFormatInfo formatRU = new DateTimeFormatInfoImpl_ru();
addToList( locales, LocaleInfo.getCurrentLocale().getDateTimeFormatInfo() );
addToList( locales, formatDE );
addToList( locales, formatEN );
addToList( locales, formatFR );
addToList( locales, formatES );
addToList( locales, formatZH );
addToList( locales, formatRU );
.
.
.
}
private static void addToList( ArrayList<String> patterns, DateTimeFormatInfo format ) {
patterns.add( format.dateFormat() );
patterns.add( format.dateFormatFull() );
patterns.add( format.dateFormatLong() );
patterns.add( format.dateFormatMedium() );
patterns.add( format.dateFormatShort() );
}
答案 1 :(得分:1)
我认为你不能这样做。构建应用程序时,GWT-Compiler会为不同的语言环境创建多个版本的应用程序。然后,浏览器会加载一个特定版本,因此其他区域设置在运行时不可用。如果您想了解更多信息,请阅读Deferred Binding: http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html
但是,可以选择强制某个区域设置。如果您只支持一个区域设置,或者它可用于测试目的,这可能很有用。将以下行添加到模块XML文件中:
<inherits name="com.google.gwt.i18n.I18N"/>
<extend-property name="locale" values="en_US"/>
<set-property name="locale" value="en_US"/>