我一直在为我的 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
时,此问题无法重现。
我也刚刚遇到了这个。其原因是因为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}
/>
您可以使用 timeZoneName={'GMT'} 或列表中具有 UTC +0 的任何时区名称 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones