MySQL DateTime意外行为

时间:2016-06-15 17:51:28

标签: javascript mysql node.js datetime postman

我的表格中有一个DATETIME字段,其显示方式与我返回的字段不同。

要理解,以下是我在API中返回的确切对象字段:

enter image description here

然而,当我使用PostMan并查看结果时,时间正在改变,而不是我回到这里:

enter image description here

我不明白发生了什么。我试图将DATETIME作为UTC时间存储在数据库中,然后将其发送到客户端,客户端将其转换为本地时间。

这是DATETIME日期在数据库中的样子: enter image description here

1 个答案:

答案 0 :(得分:0)

您没有以UTC时间存储日期。 “GMT-0400(EDT)”意味着他们将被存放在东部时间。其他结果中的Z表示UTC(或Zulu)时间,根据此规范:http://www.ietf.org/rfc/rfc3339.txt

我希望你的MySQL安装的默认时区设置为你的盒子所在的时区(https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html),所以当你在没有指定时区的情况下添加时间时,它会假设它在默认时区内。然后在您的回复中将其转换为UTC,增加四个小时。

您可能应该在向数据库添加信息时指定时区,和/或更改数据库的默认时区。根据您用于访问数据库的API,可能还有另一层“帮助”更改内容,因此如果有关于API的相关信息,您可以将其添加到您的问题中。