星期和月份枚举
日期时间 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
常量在某些语言中使用,其中输出在用作日期的一部分时与单独使用时不同。以下示例打印了 TextStyle
的三种主要形式,用于Monday
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
上次更新: 2022 年 1 月 27 日