系列中的上一篇
当前教程
星期和月份枚举
系列中的下一篇

系列中的上一篇: 标准日历

系列中的下一篇: 日期

星期和月份枚举

日期时间 API 提供了枚举,用于指定一周中的几天和一年中的月份。

 

星期

DayOfWeek 枚举包含七个常量,描述一周中的几天:从MONDAYSUNDAY。该 DayOfWeek 常量的整数值范围从 1(星期一)到 7(星期日)。使用定义的常量(DayOfWeek.FRIDAY)使您的代码更具可读性。

此枚举还提供了一些方法,类似于基于时间类的提供的方法。例如,以下代码将 3 天添加到Monday并打印结果。输出为THURSDAY

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

通过使用 getDisplayName(TextStyle, Locale) 方法,您可以检索一个字符串来标识用户区域设置中的星期几。该 TextStyle 枚举允许您指定要显示的字符串类型:FULLNARROW(通常是一个字母)或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 枚举包含十二个月的常量,从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

在本教程中


上次更新: 2022 年 1 月 27 日


系列中的上一篇
当前教程
星期和月份枚举
系列中的下一篇

系列中的上一篇: 标准日历

系列中的下一篇: 日期