不同语言环境中的部分日期格式

时间:2014-09-20 13:26:51

标签: java android internationalization date-format

我想让我的应用显示

September 2014

英文语言环境和

2014年9月

在中国语言中。

Java中是否有任何方法(特别是Android中的Java 1.6)可以做到这一点?

我很自豪"自然"在特定文化中显示年份和月份的方法。因此,英语和中国文化只是一个例子,解决方案适用于所有系统支持的文化。

对于上面的例子,如果我有9月 2014这样的话,我相信每个中国人都会知道这意味着什么,但在这种文化中看起来很奇怪。另一方面,2014年九月是可以接受的。

尝试

  1. SimpleDateFormat的模式需要您指定年和月字段的顺序。由于这在不同语言中有所不同,因此无法解决问题。

  2. 如果您尝试弯曲规则以允许显示英语2014, September2014年, 9月显示中文(这是可以接受的,但2014, 9月仍然是奇数)并考虑{{ 1}},不幸的是它为Calendar.getDisplayName返回null。

1 个答案:

答案 0 :(得分:0)

也许有帮助,但它没有在android下测试:

public static void main(String[] args) {
    try {
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        Date d = sdf.parse("01.09.2014");

        // get the formatter for a specific country/language
        sdf = (SimpleDateFormat) DateFormat.getDateInstance(
                DateFormat.LONG, Locale.CHINESE);

        System.out.println(sdf.toLocalizedPattern());
        System.out.println(sdf.format(d));
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}