我有这种格式的日期:
HttpResponseRedirect
我希望将此字符串转换为以下格式:
Tue Nov 15 2016 00:00:00 GMT+0800 (Malay Peninsula Standard Time)
我试过了:
2016-11-15 00:00:00
答案 0 :(得分:2)
我建议使用库moment.js。该库专门用于帮助处理日期和格式。
您只需要这样做:
let date = moment('Tue Nov 15 2016 00:00:00 GMT+0800').format('YYYY-MM-DD HH:mm:ss')
console.log(date)
然而,有一点需要注意。由于您提供的日期是非标准格式,您将收到弃用警告,如下所示:
弃用警告:提供的值不是公认的ISO格式。时刻构造回落到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非ISO日期格式,并将在即将发布的主要版本中删除。有关详细信息,请参阅http://momentjs.com/guides/#/warnings/js-date/。
基本上,解决方案是为您的日期提供标准格式。最简单的方法是切断时区,因为看起来您将显示日期,假设提供的TZ是本地的。
答案 1 :(得分:2)
你可以使用vanilla javascript完成它:
const date = new Date('Tue Nov 15 2016 00:00:00 GMT+0800 (Malay Peninsula Standard Time');
const day = date.getDate();
const month = date.getMonth() + 1;
const year = date.getFullYear();
const hours = date.getHours();
const minutes = date.getMinutes();
const seconds = date.getSeconds();
const timeToHHMMSS = (hours, minutes, seconds) => {
return [hours, minutes, seconds].map(value => {
return ('0' + value).slice(-2);
}).join(':');
}
const formattedDate = `${year}-${month}-${day}`;
const formattedTime = timeToHHMMSS(hours, minutes, seconds);
console.log(`${formattedDate} ${formattedTime}`);