文档

Java™ 教程-Java Tutorials 中文版
更改日期格式符号
Trail: Internationalization
Lesson: Formatting
Section: Dates and Times

更改日期格式符号


版本说明: 此日期和时间部分使用 java.util 包中的日期和时间 API。JDK 8 发行版中提供的 java.time API 提供了一个全面的日期和时间模型,它比 java.util 类提供了重大改进。java.time API 在 Date Time 路径中描述。Legacy Date-Time Code 页面可能特别有用。

SimpleDateFormat 类的 format 方法返回由数字和符号组成的 String。例如,在 String “Friday, April 10, 2009”中,符号为“Friday”和“April”。如果封装在 SimpleDateFormat 中的符号不​​符合你的需要,你可以使用 DateFormatSymbols 更改它们。你可以更改代表月份,星期几和时区等名称的符号。下表列出了允许你修改符号的 DateFormatSymbols 方法:

DateFormatSymbol 方法
Setter 方法 方法修改的符号示例
setAmPmStrings PM
setEras AD
setMonths December
setShortMonths Dec
setShortWeekdays Tue
setWeekdays Tuesday
setZoneStrings PST

以下示例调用 setShortWeekdays 将一周中星期的短名称从小写字符更改为大写字符。此示例的完整源代码位于 DateFormatSymbolsDemo 中。setShortWeekdays 的数组参数中的第一个元素是空 String。因此,数组是基于一的而不是基于零的。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

Previous page: Customizing Formats
Next page: Messages