logoAnt Design

⌘ K
  • 디자인
  • 개발
  • 컴포넌트
  • 블로그
  • 자료
5.21.3
  • Components Overview
  • General
    • Button
    • FloatButton
      5.0.0
    • Icon
    • Typography
  • Layout
    • Divider
    • Flex
      5.10.0
    • Grid
    • Layout
    • Space
    • Splitter
      5.21.0
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPicker
      5.5.0
    • DatePicker
    • Form
    • Input
    • InputNumber
    • Mentions
    • Radio
    • Rate
    • Select
    • Slider
    • Switch
    • TimePicker
    • Transfer
    • TreeSelect
    • Upload
  • Data Display
    • Avatar
    • Badge
    • Calendar
    • Card
    • Carousel
    • Collapse
    • Descriptions
    • Empty
    • Image
    • List
    • Popover
    • QRCode
      5.1.0
    • Segmented
    • Statistic
    • Table
    • Tabs
    • Tag
    • Timeline
    • Tooltip
    • Tour
      5.0.0
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
      5.1.0
  • Other
    • Affix
    • App
      5.1.0
    • ConfigProvider
    • Util
      5.13.0

DatePicker

To select or input a date.
가져오기import{ DatePicker }from"antd";
소스components/date-picker
문서
이 페이지 수정변경 로그

Resources

Ant Design Charts
Ant Design Pro
Ant Design Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Landing-Landing Templates
Scaffolds-Scaffold Market
Umi-React Application Framework
dumi-Component doc generator
qiankun-Micro-Frontends Framework
ahooks-React Hooks Library
Ant Motion-Motion Solution
China Mirror 🇨🇳

Community

Awesome Ant Design
Medium
Twitter
yuque logoAnt Design in YuQue
Ant Design in Zhihu
Experience Cloud Blog
seeconf logoSEE Conf-Experience Tech Conference
Work with Us

Help

GitHub
Change Log
FAQ
Bug Report
Issues
Discussions
StackOverflow
SegmentFault

Ant XTech logoMore Products

yuque logoYuQue-Document Collaboration Platform
AntV logoAntV-Data Visualization
Egg logoEgg-Enterprise Node.js Framework
Kitchen logoKitchen-Sketch Toolkit
Galacean logoGalacean-Interactive Graphics Solution
xtech logoAnt Financial Experience Tech
Theme Editor
Made with ❤ by
Ant Group and Ant Design Community
loading

When To Use

By clicking the input box, you can select a date from a popup calendar.

Examples

API

Common props ref:Common props

There are five kinds of picker:

  • DatePicker
  • DatePicker[picker="month"]
  • DatePicker[picker="week"]
  • DatePicker[picker="year"]
  • DatePicker[picker="quarter"] (Added in 4.1.0)
  • RangePicker

Localization

The default locale is en-US, if you need to use other languages, recommend to use internationalized components provided by us at the entrance. Look at: ConfigProvider.

If there are special needs (only modifying single component language), Please use the property: local. Example: default.

// The default locale is en-US, if you want to use other locale, just set locale in entry file globally.
// Make sure you import the relevant dayjs file as well, otherwise the locale won't change for all texts (e.g. range picker months)
import locale from 'antd/locale/zh_CN';
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
dayjs.locale('zh-cn');
<ConfigProvider locale={locale}>
<DatePicker defaultValue={dayjs('2015-01-01', 'YYYY-MM-DD')} />
</ConfigProvider>;
WARNING

When use with Next.js App Router, make sure to add 'use client' before import locale file of dayjs. It's because all components of Ant Design only works in client, importing locale in RSC will not work.

Common API

The following APIs are shared by DatePicker, RangePicker.

PropertyDescriptionTypeDefaultVersion
allowClearCustomize clear buttonboolean | { clearIcon?: ReactNode }true5.8.0: Support object type
autoFocusIf get focus when component mountedbooleanfalse
classNameThe picker classNamestring-
dateRenderCustom rendering function for date cells, >= 5.4.0 use cellRender instead.function(currentDate: dayjs, today: dayjs) => React.ReactNode-< 5.4.0
cellRenderCustom rendering function for picker cells(current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' | 'end', type: PanelMode, locale?: Locale, subType?: 'hour' | 'minute' | 'second' | 'meridiem' }) => React.ReactNode-5.4.0
componentsCustom panelsRecord<Panel | 'input', React.ComponentType>-5.14.0
disabledDetermine whether the DatePicker is disabledbooleanfalse
disabledDateSpecify the date that cannot be selected(currentDate: dayjs, info: { from?: dayjs, type: Picker }) => boolean-info: 5.14.0
formatTo set the date format, support multi-format matching when it is an array, display the first one shall prevail. refer to dayjs#format. for example: Custom FormatformatTyperc-picker
orderAuto order date when multiple or range selectionbooleantrue5.14.0
popupClassNameTo customize the className of the popup calendarstring-4.23.0
preserveInvalidOnBlurNot clean input on blur even when the typing is invalidatebooleanfalse5.14.0
getPopupContainerTo set the container of the floating layer, while the default is to create a div element in bodyfunction(trigger)-
inputReadOnlySet the readonly attribute of the input tag (avoids virtual keyboard on touch devices)booleanfalse
localeLocalization configurationobjectdefault
minDateThe minimum date, which also limits the range of panel switchingdayjs-5.14.0
maxDateThe maximum date, which also limits the range of panel switchingdayjs-5.14.0
modeThe picker panel mode( Cannot select year or month anymore? )time | date | month | year | decade-
needConfirmNeed click confirm button to trigger value change. Default false when multipleboolean-5.14.0
nextIconThe custom next iconReactNode-4.17.0
openThe open state of pickerboolean-
panelRenderCustomize panel render(panelNode) => ReactNode-4.5.0
pickerSet picker typedate | week | month | quarter | yeardatequarter: 4.1.0
placeholderThe placeholder of date inputstring | [string,string]-
placementThe position where the selection box pops upbottomLeft bottomRight topLeft topRightbottomLeft
popupStyleTo customize the style of the popup calendarCSSProperties{}
presetsThe preset ranges for quick selection, Since 5.8.0, preset value supports callback function.{ label: React.ReactNode, value: Dayjs | (() => Dayjs) }[]-
prevIconThe custom prev iconReactNode-4.17.0
sizeTo determine the size of the input box, the height of large and small, are 40px and 24px respectively, while default size is 32pxlarge | middle | small-
statusSet validation status'error' | 'warning'-4.19.0
styleTo customize the style of the input boxCSSProperties{}
suffixIconThe custom suffix iconReactNode-
superNextIconThe custom super next iconReactNode-4.17.0
superPrevIconThe custom super prev iconReactNode-4.17.0
variantVariants of pickeroutlined | borderless | filledoutlined5.13.0
onOpenChangeCallback function, can be executed whether the popup calendar is popped up or closedfunction(open)-
onPanelChangeCallback when picker panel mode is changedfunction(value, mode)-

Common Methods

NameDescriptionVersion
blur()Remove focus
focus()Get focus

DatePicker

PropertyDescriptionTypeDefaultVersion
defaultPickerValueDefault panel date, will be reset when panel opendayjs-5.14.0
defaultValueTo set default date, if start time or end time is null or undefined, the date range will be an open intervaldayjs-
disabledTimeTo specify the time that cannot be selectedfunction(date)-
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-MM-DD
multipleEnable multiple selection. Not support showTimebooleanfalse5.14.0
pickerValuePanel date. Used for controlled switching of panel date. Work with onPanelChangedayjs-5.14.0
renderExtraFooterRender extra footer in panel(mode) => React.ReactNode-
showNowShow the fast access of current datetimeboolean-4.4.0
showTimeTo provide an additional time selectionobject | booleanTimePicker Options
showTime.defaultValueTo set default time of selected date, demodayjsdayjs()
showWeekShow week info when in DatePickerbooleanfalse5.14.0
valueTo set datedayjs-
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs, dateString: string)-
onOkCallback when click ok buttonfunction()-
onPanelChangeCallback function for panel changingfunction(value, mode)-

DatePicker[picker=year]

PropertyDescriptionTypeDefaultVersion
defaultValueTo set default datedayjs-
formatTo set the date format. refer to dayjs#formatformatTypeYYYY
multipleEnable multiple selectionbooleanfalse5.14.0
renderExtraFooterRender extra footer in panel() => React.ReactNode-
valueTo set datedayjs-
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs, dateString: string)-

DatePicker[picker=quarter]

Added in 4.1.0.

PropertyDescriptionTypeDefaultVersion
defaultValueTo set default datedayjs-
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-\QQ
multipleEnable multiple selectionbooleanfalse5.14.0
renderExtraFooterRender extra footer in panel() => React.ReactNode-
valueTo set datedayjs-
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs, dateString: string)-

DatePicker[picker=month]

PropertyDescriptionTypeDefaultVersion
defaultValueTo set default datedayjs-
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-MM
multipleEnable multiple selectionbooleanfalse5.14.0
renderExtraFooterRender extra footer in panel() => React.ReactNode-
valueTo set datedayjs-
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs, dateString: string)-

DatePicker[picker=week]

PropertyDescriptionTypeDefaultVersion
defaultValueTo set default datedayjs-
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-wo
multipleEnable multiple selectionbooleanfalse5.14.0
renderExtraFooterRender extra footer in panel(mode) => React.ReactNode-
valueTo set datedayjs-
onChangeCallback function, can be executed when the selected time is changingfunction(date: dayjs, dateString: string)-

RangePicker

PropertyDescriptionTypeDefaultVersion
allowEmptyAllow start or end input leave empty[boolean, boolean][false, false]
cellRenderCustom rendering function for picker cells(current: dayjs, info: { originNode: React.ReactElement,today: DateType, range?: 'start' | 'end', type: PanelMode, locale?: Locale, subType?: 'hour' | 'minute' | 'second' | 'meridiem' }) => React.ReactNode-5.4.0
dateRenderCustom rendering function for date cells, >= 5.4.0 use cellRender instead.function(currentDate: dayjs, today: dayjs) => React.ReactNode-< 5.4.0
defaultPickerValueDefault panel date, will be reset when panel opendayjs-5.14.0
defaultValueTo set default date[dayjs, dayjs]-
disabledIf disable start or end[boolean, boolean]-
disabledTimeTo specify the time that cannot be selectedfunction(date: dayjs, partial: start | end, info: { from?: dayjs })-info.from: 5.17.0
formatTo set the date format. refer to dayjs#formatformatTypeYYYY-MM-DD HH:mm:ss
idConfig input ids{ start?: string, end?: string }-5.14.0
pickerValuePanel date. Used for controlled switching of panel date. Work with onPanelChangedayjs-5.14.0
presetsThe preset ranges for quick selection, Since 5.8.0, preset value supports callback function.{ label: React.ReactNode, value: (Dayjs | (() => Dayjs))[] }[]-
renderExtraFooterRender extra footer in panel() => React.ReactNode-
separatorSet separator between inputsReact.ReactNode<SwapRightOutlined />
showTimeTo provide an additional time selectionobject | booleanTimePicker Options
showTime.defaultValueTo set default time of selected date, demodayjs[][dayjs(), dayjs()]
valueTo set date[dayjs, dayjs]-
onCalendarChangeCallback function, can be executed when the start time or the end time of the range is changing. info argument is added in 4.4.0function(dates: [dayjs, dayjs], dateStrings: [string, string], info: { range:start|end })-
onChangeCallback function, can be executed when the selected time is changingfunction(dates: [dayjs, dayjs], dateStrings: [string, string])-
onFocusTrigger when get focusfunction(event, { range: 'start' | 'end' })-range: 5.14.0
onBlurTrigger when lose focusfunction(event, { range: 'start' | 'end' })-range: 5.14.0

formatType

import type { Dayjs } from 'dayjs';
type Generic = string;
type GenericFn = (value: Dayjs) => string;
export type FormatType =
| Generic
| GenericFn
| Array<Generic | GenericFn>
| {
format: string;
type?: 'mask';
};

Note: type is added in 5.14.0.

Design Token

컴포넌트 토큰어떻게 사용하나요?

토큰 이름설명타입기본값
activeBg输入框激活状态时背景颜色string#ffffff
activeBorderColor激活态边框色string#1677ff
activeShadow激活态阴影string0 0 0 2px rgba(5, 145, 255, 0.1)
addonBg前/后置标签背景色stringrgba(0, 0, 0, 0.02)
cellActiveWithRangeBg选取范围内的单元格背景色string#e6f4ff
cellBgDisabled单元格禁用态背景色stringrgba(0, 0, 0, 0.04)
cellHeight单元格高度number24
cellHoverBg单元格悬浮态背景色stringrgba(0, 0, 0, 0.04)
cellHoverWithRangeBg选取范围内的单元格悬浮态背景色string#c8dfff
cellRangeBorderColor选取范围时单元格边框色string#7cb3ff
cellWidth单元格宽度number36
errorActiveShadow错误状态时激活态阴影string0 0 0 2px rgba(255, 38, 5, 0.06)
hoverBg输入框hover状态时背景颜色string#ffffff
hoverBorderColor悬浮态边框色string#4096ff
inputFontSize字体大小number14
inputFontSizeLG大号字体大小number16
inputFontSizeSM小号字体大小number14
multipleItemBg다중 선택 태그의 배경색stringrgba(0, 0, 0, 0.06)
multipleItemBorderColor다중 선택 태그의 테두리 색상stringtransparent
multipleItemBorderColorDisabled비활성화된 경우 다중 선택 태그의 테두리 색상stringtransparent
multipleItemColorDisabled비활성화된 경우 다중 선택 태그의 텍스트 색상stringrgba(0, 0, 0, 0.25)
multipleItemHeight다중 선택 태그의 높이number24
multipleItemHeightLG큰 크기의 다중 선택 태그의 높이number32
multipleItemHeightSM작은 크기의 다중 선택 태그의 높이number16
multipleSelectorBgDisabled비활성화된 경우 다중 선택기의 배경색stringrgba(0, 0, 0, 0.04)
paddingBlock输入框纵向内边距number4
paddingBlockLG大号输入框纵向内边距number7
paddingBlockSM小号输入框纵向内边距number0
paddingInline输入框横向内边距number11
paddingInlineLG大号输入框横向内边距number11
paddingInlineSM小号输入框横向内边距number7
presetsMaxWidth预设区域最大宽度number200
presetsWidth预设区域宽度number120
textHeight单元格文本高度number40
timeCellHeight时间单元格高度number28
timeColumnHeight时间列高度number224
timeColumnWidth时间列宽度number56
warningActiveShadow警告状态时激活态阴影string0 0 0 2px rgba(255, 215, 5, 0.1)
withoutTimeCellHeight十年/年/季/月/周单元格高度number66
zIndexPopup弹窗 z-indexnumber1050

글로벌 토큰어떻게 사용하나요?

FAQ

When set mode to DatePicker/RangePicker, cannot select year or month anymore?

Please refer FAQ

Why does the date picker switch to the date panel after selecting the year instead of the month panel?

After selecting the year, the system directly switches to the date panel instead of month panel. This design is intended to reduce the user's operational burden by allowing them to complete the year modification with just one click, without having to enter the month selection interface again. At the same time, it also avoids additional cognitive burden of remembering the month.

How to use DatePicker with customize date library like dayjs?

Please refer Use custom date library

Why config dayjs.locale globally not work?

DatePicker default set locale as en in v4. You can config DatePicker locale prop or ConfigProvider locale prop instead.

Date-related components locale is not working?

See FAQ Date-related-components-locale-is-not-working?

How to modify start day of week?

Please use correct language (#5605), or update dayjs locale config:

  • Example: https://codesandbox.io/s/dayjs-day-of-week-x9tuj2?file=/demo.tsx
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
import updateLocale from 'dayjs/plugin/updateLocale';
dayjs.extend(updateLocale);
dayjs.updateLocale('zh-cn', {
weekStart: 0,
});

Why origin panel don't switch when using panelRender?

When you change the layout of nodes by panelRender, React will unmount and re-mount it which reset the component state. You should keep the layout stable. Please ref #27263 for more info.

How to understand disabled time and date?

Please refer to the blog 'Why is it so hard to disable the date?', to learn how to use it.

Basic
codepen icon
External Link Icon
expand codeexpand code
Multiple
codepen icon
External Link Icon
expand codeexpand code
5.14.0
Need Confirm
codepen icon
External Link Icon
expand codeexpand code
5.14.0
Date Format
codepen icon
External Link Icon
expand codeexpand code
Mask Format
codepen icon
External Link Icon
expand codeexpand code
5.14.0
Disabled
codepen icon
External Link Icon
expand codeexpand code
Allow Empty
codepen icon
External Link Icon
expand codeexpand code
Preset Ranges
codepen icon
External Link Icon
expand codeexpand code
Three Sizes
codepen icon
External Link Icon
expand codeexpand code
Customize Panel
codepen icon
External Link Icon
expand codeexpand code
5.14.0
Status
codepen icon
External Link Icon
expand codeexpand code
Filled Debug
codepen icon
External Link Icon
expand codeexpand code
Controlled Panels
codepen icon
External Link Icon
expand codeexpand code
Suffix
codepen icon
External Link Icon
expand codeexpand code
Component Token
codepen icon
External Link Icon
expand codeexpand code
Range Picker
codepen icon
External Link Icon
expand codeexpand code
Multiple Debug
codepen icon
External Link Icon
expand codeexpand code
Switchable picker
codepen icon
External Link Icon
expand codeexpand code
Choose Time
codepen icon
External Link Icon
expand codeexpand code
Limit Date Range
codepen icon
External Link Icon
expand codeexpand code
5.14.0
Disabled Date & Time
codepen icon
External Link Icon
expand codeexpand code
Select range dates
codepen icon
External Link Icon
expand codeexpand code
Extra Footer
codepen icon
External Link Icon
expand codeexpand code
Customized Cell Rendering
codepen icon
External Link Icon
expand codeexpand code
Buddhist Era
codepen icon
External Link Icon
expand codeexpand code
5.14.0
Variants
codepen icon
External Link Icon
expand codeexpand code
5.13.0
Placement
codepen icon
External Link Icon
expand codeexpand code
Customized Range Picker
codepen icon
External Link Icon
expand codeexpand code
_InternalPanelDoNotUseOrYouWillBeFired
codepen icon
External Link Icon
expand codeexpand code
+ 2 ...
+ 2 ...
+ 2 ...
ab
ab
ab
ab
날짜 선택
날짜 선택
날짜 선택
Bamboo
2000-01-01
2000-01-02
2000-01-03
2000-01-04
2000-01-05
2000-01-06
2000-01-07
2000-01-08
2000-01-09
2000-01-10
2000-01-01
2000-01-02
2000-01-03
2000-01-04
2000-01-05
2000-01-06
2000-01-07
2000-01-08
2000-01-09
2000-01-10
2000-01-01
2000-01-02
2000-01-03
2000-01-04
2000-01-05
2000-01-06
2000-01-07
2000-01-08
2000-01-09
2000-01-10
Time
7 days range
6 months range

By locale props

By ConfigProvider