我的应用程序包括服务器端的 Java 21 和客户端的 React.js。根据
Locale
,我必须获得工作日列表/数组。我对使用的依赖项没有限制,只要它们是免费/开源的。
我可以在 Java 中使用以下代码(没有花太多时间编写它)并从客户端调用 API 来获取它,但我想要 JavaScript 的东西,并且如果我可以保存 API 请求:
String[] weekDays = DateFormatSymbols.getInstance().getWeekdays();
System.out.print("weekDays:\n\t");
Arrays.stream(weekDays).forEach(x -> System.out.print(x + ", "));
System.out.println();
**Output:**
daysOfWeek:
, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday,
德语工作日的 Java 代码:
String[] daysOfWeekGER = DateFormatSymbols.getInstance(Locale.GERMAN).getWeekdays();
System.out.print("daysOfWeekGER:\n\t");
Arrays.stream(daysOfWeekGER).forEach(x -> System.out.print(x + ", "));
System.out.println();
**Output**
daysOfWeekGER:
, Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag,
我正在寻找 JavaScript 中类似的东西。
为每种语言创建硬编码数组是不切实际的,而且浪费时间和精力。
Intl.DateTimeFormat
:
function getLocalizedWeekdays(locale) {
const formatter = new Intl.DateTimeFormat(locale, { weekday: 'long' });
return [...Array(7).keys()].map(dayIndex => {
// January 1st 2024 is a Sunday in UTC.
const date = new Date(Date.UTC(/*year=*/2024, /*monthIndex=*/0, /*day=*/1 + dayIndex));
return formatter.format(date);
});
}
console.log(getLocalizedWeekdays('en-US'));
console.log(getLocalizedWeekdays('de-DE'));