更改日期格式符号

Version note:

此日期和时间部分使用java\.util包中的日期和时间 API。 JDK 8 版本中提供的java\.time API 提供了一个全面的日期和时间模型,该模型对java\.util类进行了重大改进。 Date Time路径中描述了java\.time API。 旧版日期时间代码页面可能特别有趣。

SimpleDateFormat类的format方法返回由数字和符号组成的String。例如,在String“ 2009 年 4 月 10 日,星期五”中,符号为“星期五”和“ 4 月”。如果封装在SimpleDateFormat中的符号不符合您的需要,则可以使用DateFormatSymbols进行更改。您可以更改代表月份,星期几和timezone等名称的符号。下表列出了允许您修改符号的DateFormatSymbols方法:

  • DateFormatSymbol方法*
Setter Method方法修改的符号示例
setAmPmStringsPM
setErasAD
setMonthsDecember
setShortMonthsDec
setShortWeekdaysTue
setWeekdaysTuesday
setZoneStringsPST

下面的示例调用setShortWeekdays将星期几的缩写名称从小写字母更改为大写字母。此示例的完整源代码在DateFormatSymbolsDemo中。 setShortWeekdays的数组参数中的第一个元素是空String。因此,该数组是基于 1 的,而不是基于 0 的。 SimpleDateFormat构造函数接受修改后的DateFormatSymbols对象作为参数。这是源代码:

Date today;
String result;
SimpleDateFormat formatter;
DateFormatSymbols symbols;
String[] defaultDays;
String[] modifiedDays;

symbols = new DateFormatSymbols( new Locale("en", "US"));
defaultDays = symbols.getShortWeekdays();

for (int i = 0; i < defaultDays.length; i++) {
    System.out.print(defaultDays[i] + " ");
}
System.out.println();

String[] capitalDays = {
    "", "SUN", "MON",
    "TUE", "WED", "THU",
    "FRI", "SAT"
};
symbols.setShortWeekdays(capitalDays);

modifiedDays = symbols.getShortWeekdays();
for (int i = 0; i < modifiedDays.length; i++) {
    System.out.print(modifiedDays[i] + " ");
}
System.out.println();
System.out.println();

formatter = new SimpleDateFormat("E", symbols);
today = new Date();
result = formatter.format(today);
System.out.println("Today's day of the week: " + result);

前面的代码生成此输出:

Sun Mon Tue Wed Thu Fri Sat 
 SUN MON TUE WED THU FRI SAT 

Today's day of the week: MON