Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
Date-Time API 提供用于指定一周中的周几和一年中的几月的枚举。
DayOfWeek 枚举由七个常数组成,用于描述星期几:MONDAY 到 SUNDAY。DayOfWeek 常量的整数值范围从 1(星期一)到 7(星期日)。使用定义的常量(DayOfWeek.FRIDAY)使你的代码更具可读性。
此枚举还提供了许多方法,类似于基于时间的类提供的方法。例如,以下代码将“Monday”添加 3 天并打印结果。输出是“THURSDAY”:
System.out.printf("%s%n", DayOfWeek.MONDAY.plus(3));
通过使用 getDisplayName(TextStyle, Locale) 方法,你可以获取字符串以标识用户语言环境中的星期几。TextStyle 枚举使你可以指定要显示的字符串类型:FULL,NARROW(通常为单个字母),或 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 枚举包括 12 个月的常量,JANUARY 到 DECEMBER。与 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