2015-01-07 128 views
1

我试图根据国家打印日期格式模式。 喜欢这里: https://en.wikipedia.org/wiki/Date_format_by_country获取日期格式patterrn按国家

我尝试:

public class DateFormatTest { 

    public static void main(String[] args) { 

     String[] locales = Locale.getISOCountries(); 

     for (String countryCode : locales) { 

      Locale locale = new Locale("", countryCode); 

      DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale); 

      SimpleDateFormat simple = (SimpleDateFormat) dateFormat; 

      String pattern = simple.toPattern().replaceAll("\\byy\\b", "yyyy"); 

      System.out.println(
        "{" + 
        "id : '" + locale.getCountry() + "', " + 
        "format : '" + pattern + "'" + 
        "},"); 

     } 

    } 

} 

但我得到:'M/d/yyyy'于所有国家。

对于德国来说,我希望是这样的:dd.MMM.yyyy英国:MMM/dd/yyyy

问:如何通过国家获取日期格式模式?

回答

1

啊......

我应该指定语言:

Locale locale = new Locale("en", countryCode); 

这是一个怪异的行为...

啊..并在那里点或斜杠这取决于语言太。

如果我使用“德”,那么我有点..嗯..