如何在GWT中获得不同地区的所有日期/时间格式模式



我尝试在GWT中获取所有日期/时间格式模式,使用DateTimeFormat.PredefinedFormat来获取当前区域设置的所有模式。但是我怎样才能获得其他语言环境的所有模式呢。

我找到了一种方法,不是我想要的通用方法,但在这种情况下它是有效的。也许有更好的解决方案。

   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() );
    }

我认为你做不到。在构建应用程序时,GWT编译器会为不同的地区创建应用程序的多个版本。然后浏览器加载一个特定的版本,因此其他区域设置在运行时不可用。如果您想了解更多信息,请阅读延迟绑定: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"/>

相关内容

  • 没有找到相关文章

最新更新