文档

Java™教程
隐藏目录
DayOfWeek和Month枚举
路径: 日期 时间
课程: 标准日历

DayOfWeek和Month枚举类

日期时间 API 提供了枚举来指定星期几和每年的月份。

DayOfWeek

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

该枚举还提供了许多方法,类似于基于时间的类提供的方法。例如,以下代码将 3 天添加到 "Monday" 并打印结果。输出为 "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 枚举包含了十二个月的常量,从 JANUARYDECEMBER。与 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

上一页: 概述
下一页: 日期类