这对你有用
SimpleDateFormat sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.ENGLISH);
String dateOutput = sdf.format(new Date());
EDIT
我的想法是将其分解为Calendar
对象并用另一种语言格式化它。尝试这个
SimpleDateFormat sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.getDefault());
Calendar cal = Calendar.getInstance();
int day = 0, month = 0, year = 0, hour = 0, minute = 0, sec = 0;
String loc = Locale.getDefault().getDisplayLanguage();
try {
Date testDate = sdf.parse(date);
cal.setTime(testDate);
sec = cal.get(Calendar.SECOND);
minute = cal.get(Calendar.MINUTE);
hour = cal.get(Calendar.HOUR);
day = cal.get(Calendar.DATE);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
} catch (ParseException e) {
if(loc.equals(Locale.ENGLISH.getDisplayLanguage())){
sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.FRENCH);
try {
Date testDate = sdf.parse(date);
cal.setTime(testDate);
sec = cal.get(Calendar.SECOND);
minute = cal.get(Calendar.MINUTE);
hour = cal.get(Calendar.HOUR);
day = cal.get(Calendar.DATE);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
} catch (ParseException ee) {
sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.FRENCH);
try {
Date testDate = sdf.parse(date);
cal.setTime(testDate);
sec = cal.get(Calendar.SECOND);
minute = cal.get(Calendar.MINUTE);
hour = cal.get(Calendar.HOUR);
day = cal.get(Calendar.DATE);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
} catch (ParseException eex) {
}
}
}
else if (loc.equals(Locale.FRENCH.getDisplayLanguage())){
sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.ENGLISH);
try {
Date testDate = sdf.parse(date);
cal.setTime(testDate);
sec = cal.get(Calendar.SECOND);
minute = cal.get(Calendar.MINUTE);
hour = cal.get(Calendar.HOUR);
day = cal.get(Calendar.DATE);
month = cal.get(Calendar.MONTH);
year = cal.get(Calendar.YEAR);
} catch (ParseException fe) {
}
}
}
cal.set(Calendar.SECOND, sec);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.HOUR, hour);
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, day);
if(loc.equals(Locale.ENGLISH.getDisplayLanguage()))
sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.getDefault());
else if(loc.equals(Locale.FRENCH.getDisplayLanguage()))
sdf = new SimpleDateFormat("HH mm ss dd MMM ''yy", Locale.getDefault());
Date convertedLangDate = cal.getTime();
String newDate = sdf.format(convertedLangDate);
这确实对我有用,但它不是最优雅的解决方案。调整你的代码。