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

如何修改MUI Datepicker格式标签为DD/MM/AAAA(不更改日期格式)

解决MUI Datepicker(Dayjs适配器)格式标签替换问题

当然可以实现,不用修改实际日期格式,只需要调整手动输入时的格式提示文本即可,有两种常用方案:

方案一:单个DatePicker单独设置

直接给目标DatePicker组件添加formatHelperText属性,指定你要的提示文本,同时保留原有的format确保日期显示/解析逻辑不变:

import { LocalizationProvider, DatePicker } from '@mui/x-date-pickers';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import ptBR from 'dayjs/locale/pt-br';

function CustomDatePicker() {
  return (
    <LocalizationProvider dateAdapter={AdapterDayjs} adapterLocale={ptBR}>
      <DatePicker
        label="Selecione a data"
        // 手动输入时显示的格式提示
        formatHelperText="DD/MM/AAAA"
        // 保持原有的日期格式逻辑
        format="DD/MM/YYYY"
      />
    </LocalizationProvider>
  );
}

方案二:全局配置(所有DatePicker生效)

如果需要所有用pt_BR区域的DatePicker都显示这个提示,可以自定义Dayjs的本地化配置,替换原pt_BR中的格式字符串:

import { LocalizationProvider, DatePicker } from '@mui/x-date-pickers';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import ptBR from 'dayjs/locale/pt-br';
import dayjs from 'dayjs';

// 继承原pt_BR配置,替换格式提示中的YYYY为AAAA
const customPtBR = {
  ...ptBR,
  formats: {
    ...ptBR.formats,
    L: 'DD/MM/AAAA' // 这个是Dayjs本地化中的短日期格式,MUI会用它作为默认提示
  }
};

// 注册自定义本地化(第三个参数true表示不覆盖全局pt_BR,仅添加自定义版本)
dayjs.locale(customPtBR, null, true);

function App() {
  return (
    <LocalizationProvider 
      dateAdapter={AdapterDayjs} 
      adapterLocale={customPtBR}
    >
      <DatePicker label="Selecione a data" />
    </LocalizationProvider>
  );
}

两种方案都不会改变实际的日期解析/格式化逻辑,只是把手动输入时的提示文本从DD/MM/YYYY改成了DD/MM/AAAA,用户输入的日期依然会按pt_BR的规则(日/月/年)正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:16:14