You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Luxon根据locale获取对应区域适配的每周起始日期

Luxon 按区域设置获取对应周起始日的实现方法

Luxon 原生支持按 locale 自动匹配地区周起始规则,测试美国、法国区域都返回周一为周起始,是因为 Luxon 默认采用 ISO 周计算规则(固定周一为周起始),没有开启从 locale 读取周配置的开关,开启后即可实现自动匹配。

具体实现步骤

  • 开启 locale 周规则适配
    可以选择全局配置,一次设置后所有 DateTime 实例都遵循 locale 周规则,配置代码如下:
    import { Settings } from 'luxon';
    // 开启按locale匹配周计算规则(包含周起始日、周数计算逻辑)
    Settings.defaultWeekSettings = { useLocaleWeeks: true };
    
    如果不想影响全局逻辑,也可以针对单个 DateTime 实例单独配置:
    import { DateTime } from 'luxon';
    const usInstance = DateTime.local()
      .setLocale('en-US')
      .reconfigure({ weekSettings: { useLocaleWeeks: true } });
    
  • 读取对应地区的周起始日
    配置完成后,直接访问实例的weekStart属性即可拿到对应地区的周起始值,Luxon 中周几用1-7的数值表示:1代表周一,7代表周日。
    针对提到的两个区域,测试结果如下:
    // 美国(en-US)
    const usDate = DateTime.local().setLocale('en-US');
    console.log(usDate.weekStart); // 输出7,对应周日为周起始,符合预期
    
    // 法国(fr-FR)
    const frDate = DateTime.local().setLocale('fr-FR');
    console.log(frDate.weekStart); // 输出1,对应周一为周起始,符合预期
    

注意:useLocaleWeeks 配置仅在 Luxon 2.0.0 及以上版本支持,使用旧版本的话请先升级依赖。

内容的提问来源于stack exchange,提问作者Elma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:39:20