提问者:小点点

如何“使用”TIMESTAMP postgres数据类型


我已经将Luxon创建的datetime值保存到postgres数据库列中,类型为TIMESTAMP(3)。然后我想使用这个值,把它转换成其他时区,等等。然而,我似乎想不出如何“利用”它。

我使用以下方法创建了该对象:

const { DateTime } = require("luxon");
const myDate = DateTime.now().toUTC().toISO()

然后,我将其插入到postgres数据库中,插入时间戳(3)类型的列中。

我使用查询从数据库中提取它。当我记录它时,它说它的值是:

console.log(extracted_date);                      //=> "2021-12-27T09:57:16.184Z"
console.log(typeof extracted_date);               //=> object

// The following return "unparsable" or undefined objects
DateTime.fromISO(extracted_date);
DateTime.fromObject(extracted_date);

我可以找到很多关于如何将日期插入sql的教程,但没有关于如何获取该日期对象并实际使用它的教程。例如,我想转换它的时区。


共1个答案

匿名用户

要使用date对象,您可以启动一个新日期,如下所示:

console.log(extracted_date);  //=> "2021-12-27T09:57:16.184Z"
const javascriptDate = new Date(extracted_date);

比你可以直接使用它或与luxon库。

console.log(javascriptDate.toGMTString()); // => "Mon, 27 Dec 2021 09:57:16 GMT"
console.log(javascriptDate.toISOString()); // => "2021-12-27T09:57:16.184Z"
console.log(javascriptDate.valueOf()); // => 1640599036184

这个对象核心实际上是一个值,表示自1970年1月1日UTC以来的毫秒数,一般来说,它添加了时间和字符串解析函数。

如果您想阅读有关时间戳的更多信息,以下是一些参考资料:

UTC与ISO时间格式

什么是“正确的”JSON日期格式?