这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言特性的概述。
请参阅JDK发布说明,了解有关所有JDK发布的新功能、增强功能以及已删除或弃用选项的信息。
日期时间 API 提供了枚举来指定星期几和每年的月份。
DayOfWeek 枚举由七个常量组成,用于描述星期几: MONDAY 到 SUNDAY。 DayOfWeek 常量的整数值范围从 1(星期一)到 7(星期日)。使用定义的常量(DayOfWeek.FRIDAY)可以使您的代码更具可读性。
该枚举还提供了许多方法,类似于基于时间的类提供的方法。例如,以下代码将 3 天添加到 "Monday" 并打印结果。输出为 "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 枚举包含了十二个月的常量,从 JANUARY 到 DECEMBER。与 DayOfWeek 枚举一样,Month 枚举是强类型的,每个常量的整数值对应于 ISO 范围从 1(一月)到 12(十二月)。使用定义的常量(Month.SEPTEMBER)可以使您的代码更具可读性。
Month 枚举还包括许多方法。以下代码使用 maxLength 方法打印二月份可能的最大天数。输出为 "29":
System.out.printf("%d%n", Month.FEBRUARY.maxLength());
Month 枚举类还实现了 getDisplayName(TextStyle, Locale) 方法,通过指定的 TextStyle 以用户的区域设置来获取标识月份的字符串。如果某个特定的 TextStyle 未定义,则返回表示常量数值的字符串。以下代码使用三种主要的文本样式打印出了八月份的月份:
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