【发布时间】:2021-07-28 18:18:25
【问题描述】:
我的大脑一定是彻底炸了,但我终其一生都无法弄清楚如何以 UTC 格式将当前日期和时间格式化为字符串。无论我做什么,我都只是本地化。
我有以下函数以正确的格式返回日期,但它始终是本地的。
let datenow = new Date;
console.log(datenow); // "2021-07-28T18:11:11.282Z"
console.log(generateDatabaseDateTime(datenow)); // "2021-07-28 14:11:33"
function generateDatabaseDateTime(date) {
const p = new Intl.DateTimeFormat('en', {
year:'numeric',
month:'2-digit',
day:'2-digit',
hour:'2-digit',
minute:'2-digit',
second:'2-digit',
hour12: false
}).formatToParts(date).reduce((acc, part) => {
acc[part.type] = part.value;
return acc;
}, {});
return `${p.year}-${p.month}-${p.day} ${p.hour}:${p.minute}:${p.second}`;
}
有人知道我错过了什么吗?
【问题讨论】:
-
只用
date.getUTC<Year/Month/etc>?或date.toISOString().replace("T", " "). -
只需将
timeZone:'UTC'添加到选项中即可。
标签: javascript date datetime