我在React Native应用中使用native datepicker of android,仅当我使用调试模式时才获得日期,但是当我使用真实电话取消调试模式时,我会收到警报'无效日期' >与调试选择的日期相同。
showDatePicker = async () => {
if (Platform.OS === 'ios') {
this.setState({ datePickerIosPlatform: true })
} else {
try {
const { action, year, month, day } = await DatePickerAndroid.open({
date: new Date()
});
if (action !== DatePickerAndroid.dismissedAction) {
console.log('action', action, 'year', year, ' month', month, 'day', day)
var stringDate = `${year} ${month} ${day}`;
var newDate = new Date(stringDate)
alert(newDate)
var convertDate = moment(newDate).format('DD.MM.YYYY')
console.log('convertdata',convertDate)
// this.convertDate(stringDate)
}
} catch ({ code, message }) {
console.warn('Cannot open date picker', message);
}
}
}
答案 0 :(得分:0)
今天我遇到了类似的问题(并解决了!)。
我尝试生成给定字符串(德国日期格式)new Date("06.06.2020")
的日期对象。之后,我尝试将生成的日期与今天new Date()
进行比较。
由于它在“调试模式”下运行良好,因此在捆绑的Release APK上不起作用。我也收到了invalid Date
-条消息,
解决方案
我发现,您必须具有完全合格的ISO_8601格式的字符串才能生成日期。
因此,我执行以下操作以将日期转换为ISO_8601格式:
const startNextFestival = "06.10.2020".split('.').reverse().join('-')+"T10:00:00.000Z";
const nextFestival = new Date(startNextFestival);
这将为startNextFestival生成以下日期字符串:“ 2020-06-06T10:00:00.000Z” 这样,它就像一种魅力一样产生。
希望对别人有帮助。