react-native-modal-datetime-picker 夏令时时区问题

问题描述 投票:0回答:2

我一直在为我的 react 本机移动应用程序使用 react-native-modal-datetime-picker 包,并遇到了一个问题。

在日期选择器中,我需要将默认选择的日期设置为

'1985-08-17'
,当时区为
America/Mexico_City (-05:00)
时,默认选择的日期将变为 前一天,即
'1985-08-16'

下面的代码示例中我做错了什么吗?

<DateTimePicker
    isVisible={true}
    date={new Date('1985-01-17')}
    onConfirm={()=>()}
    onCancel={()=>()}
    mode={'date'}
/>

在同一 CDT 时区,当我将设备时区更改为

America/Chicago
时,此问题无法重现。

javascript android ios react-native moment-timezone
2个回答
3
投票

我也刚刚遇到了这个。其原因是因为react-native-modal-datetime-picker正在使用您的local时区,而

new Date(...)
使用UTC

您可以通过告诉react-native-modal-datetime-picker使用UTC来修复它,就像这样

<DateTimePicker
    isVisible={true}
    date={new Date('1985-01-17')}
    onConfirm={()=>()}
    onCancel={()=>()}
    mode={'date'}
    timeZoneOffsetInMinutes={0}
/>

0
投票

您可以使用 timeZoneName={'GMT'} 或列表中具有 UTC +0 的任何时区名称 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

© www.soinside.com 2019 - 2024. All rights reserved.