首页 > 解决方案 > Nodejs 将数据库时间转换为 UTC 格式而不实际转换日期

问题描述

在我的数据库中,我的列具有以下值:

created_at: 2018-11-29 00:24:33.967124

但是当我在 nodeJS 中查询该列以获取其数据时,它返回以下数据:

created_at: 2018-11-29T00:24:33.967124Z

我不知道谁是这里的罪魁祸首,是 nodejs/postgres 还是时区。

在这里解释更多是我的查询:

let query = "Select created_at from my_table limit 1";

let tableData = await runQuery(query);
console.log(tableData);

输出:[{ created_at: 2018-11-28T19:24:20.946Z }]

所以我不希望节点转换/格式化这些数据并重新调整来自数据库的数据。我怎么能做到这一点或我做错了什么。

标签: sqlnode.jsdatabasepostgresqlpg-promise

解决方案


那些是一样的。零时区的时间戳与没有时区的时间戳相同。Node.js 驱动程序将始终为您提供带有时区的时间戳。

const a = Date.parse('2018-11-29T00:24:33.967124Z');
const b = Date.parse('2018-11-29 00:24:33.967124');

console.log(a); //=> 1543451073967
console.log(b); //=> 1543451073967

console.log(a === b); //=> true

推荐阅读