Android pc和手机上的不同日期格式结果(具有完全相同的地区和日期)?为什么?

Android pc和手机上的不同日期格式结果(具有完全相同的地区和日期)?为什么?,android,date,simpledateformat,Android,Date,Simpledateformat,我有非常简单的测试功能: public static String dateToString(long date, String format) { SimpleDateFormat sdf = new SimpleDateFormat(format, locale); return sdf.format(new Date(date)); } 我将这些参数传递给它: Calendar cal = Calendar.getInstance(); cal.add(Calendar.

我有非常简单的测试功能:

public static String dateToString(long date, String format) {
    SimpleDateFormat sdf = new SimpleDateFormat(format, locale);
    return sdf.format(new Date(date));
}
我将这些参数传递给它:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 3); // I need to have date in May (today is april)
Locale locale = new Locale("ca", "es",""); // Catalan locale
System.out.println(dateToString(cal .getTimeInMillis(), "MMM dd"));
但pc上的输出是:

maig 02

android手机上的输出为:

de maig 02


为什么??我真的需要得到尽可能短的文本版本的月,没有像“德”之类的词。我使用catalan local仅用于表示-在其他一些地区也可以看到差异…

因为地区对桌面和移动设备的定义不同你是直接运行Java还是在你的电脑上运行AVD?我在电脑上运行普通的Java程序…好的,设备上的地区可能不同,这也很奇怪。但如何获得本月最短文本版本?没有“德”字?我使用“MMM”格式来获得每月最短的验证,而不是第二短的验证…那么您的问题的答案可能是,对于桌面和移动设备,区域设置的定义不同。为什么不呢?(不幸的是,我无法判断这两种输出在这方面是否有意义。)--在安卓系统上,我推荐,我想应该是
%b
?在pc和设备上,语言环境绝对是相同的,因为我明确地定义了它们(对加泰罗尼亚人来说,请参阅我的代码)。但是无论如何,你能提供一个你建议的例子吗?我没有提到地区,而是提到它们的定义。它们可能会有所不同,因为移动设备的屏幕通常较小请注意,
android.text.format.Time
仅在android上可用。一段时间。