DayOfWeek 和月份枚举

Date-Time API 提供了用于指定星期几和一年中月份的枚举。

DayOfWeek

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

该枚举还提供了许多方法,类似于基于时间的类提供的方法。例如,以下代码将 3 天添加到“星期一”并打印结果。输出为“ THURSDAY”:

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

通过使用getDisplayName(TextStyle, Locale)方法,您可以检索一个字符串 以标识用户语言环境中的星期几。 TextStyle枚举使您可以指定要显示的字符串 类型:FULLNARROW(通常为单个字母)或SHORT(缩写)。 STANDALONE TextStyle常量在某些语言中使用,当它们用作日期的一部分时,其输出与单独使用时的输出是不同的。以下示例显示“星期一”的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枚举也是强类型,并且每个常量的整数值对应于从 1(一月)到 12(十二月)的 ISO 范围。使用定义的常量(Month\.SEPTEMBER)使您的代码更具可读性。

Month枚举还包括许多方法。下面的代码行使用maxLength方法来打印 2 月中的最大可能天数。输出为“ 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
首页