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

MUI X DateCalendar搭配Luxon Adapter:周起始日未改为周日求助

解决Luxon + MUI DateCalendar周起始日未切换为周日的问题

问题根源

Luxon 3.4.4新增了本地化周信息支持,但MUI的AdapterLuxon(尤其是你使用的7.0.0-alpha版本)暂未自动适配该特性,默认仍沿用固定的周起始规则;另外如果未明确设置Luxon的区域,默认区域可能采用周起始为周一的配置(如en-GB)。

解决方案

以下几种方法可以快速解决问题,按优先级排序:

1. 直接在DateCalendar组件指定周起始日

最简单的方式是给DateCalendar添加firstDayOfWeek属性,0代表周日,1代表周一:

<DateCalendar
  value={calendarValue}
  onChange={setCalendarValue}
  views={["day"]}
  disablePast
  sx={{ m: 0 }}
  firstDayOfWeek={0} // 强制设置周日为周起始
/>

2. 配置Luxon默认区域(适配本地化)

如果需要遵循区域的本地化规则(比如美式英语en-US默认周日起始),先设置Luxon的默认区域:

// 在App.tsx或入口文件中导入并配置
import { Settings } from 'luxon';
Settings.defaultLocale = 'en-US';

若上述配置后仍不生效,可以自定义适配器读取Luxon的本地化数据:

import { AdapterLuxon } from '@mui/x-date-pickers/AdapterLuxon';
import { Info } from 'luxon';

const CustomAdapterLuxon = {
  ...AdapterLuxon,
  getFirstDayOfWeek: () => Info.firstDayOfWeek(), // 从当前区域自动获取周起始
};

// 在LocalizationProvider中使用自定义适配器
<LocalizationProvider dateAdapter={CustomAdapterLuxon}>
  <Outlet />
</LocalizationProvider>

3. 检查并升级MUI版本

你当前使用的是@mui/x-date-pickers 7.0.0-alpha预发布版,后续正式版可能会跟进适配Luxon的新特性。可以关注官方更新,升级到稳定版后再验证是否自动生效。


内容的提问来源于stack exchange,提问作者Mr.Smithyyy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:57:34