如何更改material-ui-pickers时间选择器时区?

Jun*_*nie 10 timepicker reactjs material-ui luxon

时间选择器显示本地时区,如何将其更改为所需的时区?

小智 6

正如其他答案中提到的,Material-UI 选择器使用第三方日期/时间库,您需要添加和配置。

所以,你需要在yarn/npm中添加这些:

yarn add moment
yarn add moment-timezones
yarn add @date-io/moment@1.x moment
Run Code Online (Sandbox Code Playgroud)

在你App.js添加这个:

import moment from 'moment'

let launchMoment = require('moment')
require('moment-timezone')
moment.tz.setDefault('America/Los_Angeles')

Run Code Online (Sandbox Code Playgroud)

您可以将 更改setDefault为您想要的时区:

在您使用选择器的组件中,您需要导入这些:

import { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers'
import MomentUtils from '@date-io/moment'
Run Code Online (Sandbox Code Playgroud)

你的选择器看起来像这样:

<MuiPickersUtilsProvider utils={MomentUtils}>
          <KeyboardDatePicker
            disableToolbar
            variant="inline"
            format="ddd MMM Do"
            margin="normal"
            id="date-picker-inline"
            value={date}
  
            onChange={handleDateChange}
            KeyboardButtonProps={{
              'aria-label': 'change date'
            }}
           
          />
</MuiPickersUtilsProvider>
Run Code Online (Sandbox Code Playgroud)

注意:选择器支持其他日期/时间库,但有些没有本地时区可配置性,例如date-fns


Mos*_*ini 1

有一个误会。您向日期选择器提供一个日期,它仅显示通过的日期。对于时区转换,您必须查看您使用的日期提供程序和选择器,通常是以下之一: