一些国家(如德国(从星期一开始一周,而像美国这样的一些国家从星期日开始一周。 我在想dayOfWeek.value有一个基于Locale的版本,但我找不到它。 有没有办法使用 java.time API 根据语言环境以正确的顺序获取工作日
你需要WeekFields
,它有一个of
方法,需要Locale
。
下面是一些代码,可按顺序获取一周中的几天列表:
DayOfWeek firstDay = WeekFields.of(someLocale).getFirstDayOfWeek();
List<DayOfWeek> list = IntStream.range(0, 7)
.mapToObj(x -> firstDay.plus(x))
.collect(Collectors.toList());
DayOfWeek 不支持本地化的文本形式,您需要WeekFields
此枚举提供对星期几的本地化文本形式的访问。某些区域设置还为日期分配不同的数值,声明星期日的值为 1,但此类不支持此值。有关本地化的周编号,请参阅周字段。
WeekFields germany = WeekFields.of(Locale.GERMANY);
System.out.println(germany.getFirstDayOfWeek()); //MONDAY
WeekFields us = WeekFields.of(Locale.US);
System.out.println(us.getFirstDayOfWeek()); //SUNDAY