【发布时间】:2015-04-02 08:56:24
【问题描述】:
我在mysql中寻找“如何获取日期时间以及附加的UTC”。但我在stackoverflow中找不到任何合适的解决方案。
许多人建议通过分配 default_time_zone 在查询本身中将日期时间转换为所需的 UTC,但我想在用户端转换日期时间取决于他们的系统设置。
我有一个名为“created_on TIMESTAMP DEFAULT CURRENT_TIMESTAMP”的字段
每当我获取数据时,我都会得到日期为“yyyy-mm-dd hh:mm:ss”(例如2015-04-01 11:30:25 em>)
但我想要的格式是“2015-04-01 11:30:25 +5:30”,其中(+5:30 是服务器的 default_time_zone ) 以便我可以在用户端将其转换为“2015-04-01 10:30:25”(假设用户的时区为 +4:30)
所以我的问题是如何在 mysql 中获取日期时间以及附加的 UTC,以便我可以在用户端根据他们的系统设置进行转换?
【问题讨论】:
-
您的日期是如何保存在数据库中的?当您在数据库中保存日期时,它会保存什么时区?提供一些样本数据和预期结果。
-
@AbhikChakraborty 完成了兄弟。检查它..
-
您将其保存在
timestamp类型的字段中。 -
@N.B.请检查我编辑的问题。
-
UTC,说白了就是“无时区”,这很棒,因为您可以应用时区并移动时间偏移量。您想要做的是保存您使用他们的时区从用户那里获得的时间,然后您想要为另一个时区的另一个用户抵消该时间。这是错误的,而且工作量太大。您将所有日期保存为 UTC(即
timestamp列),然后将所有日期作为 UTC 提供 - 之后,您说您使用用户的时区 - 这是完美的,因为那时您的工作非常容易。基本上只需将所有内容保存为 UTC,就完成了。