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

如何修改Material UI v5 CalendarPicker的星期显示为SUN、MON等3字母缩写

解决方案

你可以通过以下两种常用方案实现需求,按需选择即可:

方案1:自定义日期适配器(推荐,适配多语言场景)

MUI日期选择器的星期文本默认由LocalizationProvider绑定的日期适配器生成,默认AdapterDateFns调用getWeekdays方法时使用的是单字母窄格式,我们只要重写该方法返回三字母缩写格式即可:

import React from "react"
import isWeekend from "date-fns/isWeekend"
import MuiCalendarPicker from "@mui/lab/CalendarPicker"
import AdapterDateFns from "@mui/lab/AdapterDateFns"
import LocalizationProvider from "@mui/lab/LocalizationProvider"
import { ComponentWrapper } from "./CalendarPicker.style"
import { format } from "date-fns"

// 自定义适配器重写获取星期文本的逻辑
class CustomAdapterDateFns extends AdapterDateFns {
  getWeekdays = () => {
    const weekStart = this.options.weekStartsOn ?? 0; // 适配周起始日配置
    return Array.from({ length: 7 }, (_, index) => {
      const date = new Date(2021, 0, 3 + (index + weekStart) % 7); // 取固定的周日到周六区间
      return format(date, "ccc", { locale: this.locale }).toUpperCase();
    })
  }
}

interface Props {}

const CalendarPicker: React.FC<Props> = () => {
  const [value, setValue] = React.useState<Date | null>(new Date())

  return (
    // 替换为自定义适配器即可
    <LocalizationProvider dateAdapter={CustomAdapterDateFns}>
      <ComponentWrapper>
        <MuiCalendarPicker<Date>
          openTo="day"
          date={value}
          shouldDisableDate={isWeekend}
          onChange={(newValue) => {
            setValue(newValue)
          }}
        />
      </ComponentWrapper>
    </LocalizationProvider>
  )
}

export default CalendarPicker

方案2:自定义星期头部插槽(简单直接,适合固定语言场景)

如果你不需要适配多语言,直接硬编码星期文本,可以直接通过slots属性替换默认的星期头部组件:

<MuiCalendarPicker<Date>
  openTo="day"
  date={value}
  shouldDisableDate={isWeekend}
  onChange={(newValue) => {
    setValue(newValue)
  }}
  // 新增插槽配置即可
  slots={{
    dayOfWeekHeader: ({ day }) => {
      // day参数为0~6,对应周日到周六
      const weekTexts = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
      return <span style={{ fontSize: '0.75rem' }}>{weekTexts[day]}</span>
    }
  }}
/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:15:00