有没有办法覆盖国际化的默认值?
例如,如果我得到 EEEE 格式的日期,它将给我Sunday但我想要像Sunnyday这样的东西。
"EEEE, dd MMM, yyyy"
给我 2011 年 3 月 27 日星期日
我想"EEEE, dd MMM, yyyy"
给我晴天,2011 年 3 月 27 日
有没有办法覆盖国际化的默认值?
例如,如果我得到 EEEE 格式的日期,它将给我Sunday但我想要像Sunnyday这样的东西。
"EEEE, dd MMM, yyyy"
给我 2011 年 3 月 27 日星期日
我想"EEEE, dd MMM, yyyy"
给我晴天,2011 年 3 月 27 日
DateFormat 使用的字符串由 class 的对象定义,该对象DateFormatSymbols
具有setXXX
方法。所以你可以试试这个:
DateFormatSymbols englishSymbols = DateFormatSymbols.getInstance(Locale.ENGLISH);
DateFormatSymbols mySymbols = (DateFormatSymbols)englishSymbols.clone();
String[] weekdays = mySymbols.getWeekdays();
weekdays[Calendar.SUNDAY] = "Sunnyday";
mySymbols.setWeekdays(weekdays);
DateFormat f = new SimpleDateFormat("EEEE, dd MMM, yyyy", mySymbols);
System.out.println(f.format(new Date()));
它为我显示: Sunnyday, 27 Mar, 2011
.
您必须设置语言环境,这是法国的示例:
Locale frLocale = new Locale("fr", "FR");
SimpleDateFormat formatter = new SimpleDateFormat("EEE d MMM yy", frLocale);
Date today = new Date();
String output = formatter.format(today);
System.out.println(output);
输出:dimanche 27 mars 11
或者,如果您想拥有自己的名字:
String[] monthNames = {"cold January", "warm February" ...};
Calendar cal = Calendar.getInstance();
String month = monthName[cal.get(Calendar.MONTH)];
System.out.println("Month name: " + month);