2012-07-21 86 views
0

Android的翻译日期,我可以“T得到的是假设取决于区域设置简单地写一个日期在许多langage一个新的项目工作一段简单的代码。根据地区不同,

Locale[] locales = new Locale[] { 
      Locale.JAPAN, 
      Locale.CHINA, 
      Locale.KOREA, 
      Locale.TAIWAN, 
      Locale.ITALY, 
      Locale.FRANCE, 
      Locale.GERMAN 
    }; 

    // Get an instance of current date time 
    Date today = new Date(); 

    // 
    // Iterates the entire Locale defined above and create a long 
    // formatted date using the SimpleDateFormat.getDateInstance() 
    // with the format, the Locale and the date information. 
    // 
    for (Locale locale : locales) { 
     System.out.println("Date format in " 
      + locale.getDisplayName() 
      + " = " 
      + SimpleDateFormat.getDateInstance(
        SimpleDateFormat.LONG, locale) 
         .format(today).toUpperCase()); 
    } 
} 

这里是这段代码的链接:URL of the code below

现在这里就是它的假设,以显示日本(日本)

日期格式= 2009年1月4日

日期形式在中文(中国)= 2009年1月4日

在朝鲜语(韩国)日期格式= 2009년1월4일(일)在中国(台湾)

日期格式= 2009年1在意大利语(意大利)月4日

日期格式= 4 GENNAIO在法语(法国),2009年

日期格式= 4维耶2009年

日期格式在德国= 4 JANUAR 2009年

这里是我显示:日本(日本)

日期格式=在中文(中国)2012 7 21

日期格式= 2012 7 21

日期格式在朝鲜语(韩国)=在意大利语(意大利)在中国(台湾)2012 7 21

日期格式= 2012 7 21

日期格式= 2012 7 21

大在法语(法国)TE格式= 2012 7 21

日期格式在德国= 2012 7 21

问题:怎么了?我是否在伪造一些明显的东西?你有领先吗?

谢谢。

+0

你在多个设备上测试过吗?他们总是输出相同的东西吗?这很奇怪,你的代码看起来不错。我使用'DateFormat'而不是'SimpleDateFormat'(这里的方法是相同的),它适用于我 – 2012-07-21 09:29:46

+0

我只在一个设备上试过,HTC Desire当我在中国时,但是我没有看到这是什么是相关的(如果你能告诉我)。我也尝试了DateFormat而不是SimpleDateFormat,但是你没有改变任何东西。 – 2012-07-21 10:00:56

+1

我认为这可能是设备中的一些错误,因为语言环境设置存储在系统中。尝试模拟器,并尝试使用不同的格式,SHORT或FULL。使用'Log.d()'而不是'System.out.println()'而不是'System.out.println()',但是我认为它不会改变任何东西 – 2012-07-21 10:16:16

回答

1

事实证明这是一个设备特有的问题。该代码在具有正确语言环境数据的手机上以及仿真器上工作。在HTC Desire上,有些ROM的地区数据损坏。 More on this issue.