如何在 javascript 中获取所有工作日的数组

问题描述 投票:0回答:1

我的应用程序包括服务器端的 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 中类似的东西。

为每种语言创建硬编码数组是不切实际的,而且浪费时间和精力。

javascript arrays dayofweek weekday
1个回答
0
投票

你可以使用

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'));

© www.soinside.com 2019 - 2024. All rights reserved.