文档

Java™ 教程-Java Tutorials 中文版
DayOfWeek 和 Month 枚举
Trail: Date Time
Lesson: Standard Calendar

DayOfWeek 和 Month 枚举

Date-Time API 提供用于指定一周中的周几和一年中的几月的枚举。

DayOfWeek

DayOfWeek 枚举由七个常数组成,用于描述星期几:MONDAYSUNDAYDayOfWeek 常量的整数值范围从 1(星期一)到 7(星期日)。使用定义的常量(DayOfWeek.FRIDAY)使你的代码更具可读性。

此枚举还提供了许多方法,类似于基于时间的类提供的方法。例如,以下代码将“Monday”添加 3 天并打印结果。输出是“THURSDAY”:

System.out.printf("%s%n", DayOfWeek.MONDAY.plus(3));

通过使用 getDisplayName(TextStyle, Locale) 方法,你可以获取字符串以标识用户语言环境中的星期几。TextStyle 枚举使你可以指定要显示的字符串类型:FULLNARROW(通常为单个字母),或 SHORT(缩写)。STANDALONE TextStyle 常量用于某些语言中,当用作日期的一部分时,输出不同于单独使用时的输出。以下示例为打印“Monday” 用 TextStyle 的三种主要形式:

DayOfWeek dow = DayOfWeek.MONDAY;
Locale locale = Locale.getDefault();
System.out.println(dow.getDisplayName(TextStyle.FULL, locale));
System.out.println(dow.getDisplayName(TextStyle.NARROW, locale));
System.out.println(dow.getDisplayName(TextStyle.SHORT, locale));

此代码具有 en 语言环境的以下输出:

Monday
M
Mon

Month

Month 枚举包括 12 个月的常量,JANUARYDECEMBER。与 DayOfWeek 枚举一样,Month 枚举是强类型的,每个常量的整数值对应于从 1(1 月)到 12(12 月)的 ISO 范围。使用定义的常量(Month.SEPTEMBER)使你的代码更具可读性。

Month 枚举还包括许多方法。以下代码行使用 maxLength 方法打印 2 月份的最大可能天数。输出为“29”:

System.out.printf("%d%n", Month.FEBRUARY.maxLength());

Month 枚举还实现 getDisplayName(TextStyle, Locale) 方法,以使用指定的 TextStyle 获取字符串以标识用户语言环境中的月份。如果未定义特定的 TextStyle,则返回表示常量的数值的字符串。以下代码使用三种主要文本样式打印 August:

Month month = Month.AUGUST;
Locale locale = Locale.getDefault();
System.out.println(month.getDisplayName(TextStyle.FULL, locale));
System.out.println(month.getDisplayName(TextStyle.NARROW, locale));
System.out.println(month.getDisplayName(TextStyle.SHORT, locale));

此代码具有 en 语言环境的以下输出:

August
A
Aug

Previous page: Overview
Next page: Date Classes