gpt4 book ai didi

mysql - 如何以 UTC 和本地时区存储日期时间

转载 作者:可可西里 更新时间:2023-11-01 06:36:31 25 4
gpt4 key购买 nike

什么是存储日期时间的实用方法,以便我可以让用户查看/查询截至他们本地时间的数据,同时保留有关原始日期时间的信息。

基本上,用户希望能够查询(截至他们自己的本地时间)从不同时区的系统收集的数据。但有时,他们想知道原始系统中的数据是在 18:00 创建的。当来自世界不同地区的用户就同一事件进行交流时,它会有所帮助。

User1: What? We don't have any data for 20:00
User2: Dude, it says 20:00 right there on my screen.
User1: Wait, what timezone are you? What's the UTC-time?
User2: What is UTC? Is that something with computers?
User1: OMFG! *click*

我正在寻找有关如何存储数据的建议。

我正在考虑以 UTC 格式存储所有日期时间并添加一个包含原始时区名称的附加列,其格式允许我使用 mysql CONVERT_TZ,或 Java 中的对应格式。然后应用程序会将用户输入的日期转换为 UTC,我可以轻松地查询数据库。所有日期也可以在应用程序中轻松转换为用户本地时间。使用原始时区列,我还可以显示原始日期时间。

但是,这意味着对于我拥有的每个日期时间,我都需要一个额外的列...

start_time_utc datetime
start_time_tz varchar(64)
end_time_utc datetime
end_time_tz varchar(64)

我走在正确的轨道上吗?

是否有人使用过此类数据来分享他们的经验?

(我将使用 MySQL 5.5 CE)

更新 1

数据将在 xml 文件中传递,其中每个条目都有一个在某个本地时区的日期时间。所以只会有一个插入进程,在一个地方运行。

一旦加载到数据库中,它将在一些网络应用程序中呈现给不同时区的用户。对于大多数用例,感兴趣的数据也确实来自与查看数据的用户相同的时区。对于一些更复杂的用例,一系列事件相互关联并跨越多个时区。因此,用户希望能够谈论这些事件,以便在其他人的时间调查可能的原因/后果。不是 UTC,不是他们自己的本地时间。

最佳答案

由于用户可以生活在不同的时区,甚至可以从一个时区移动到另一个时区,最佳做法是以 UTC 格式存储日期和时间,并在显示时转换为用户的时区。

关于mysql - 如何以 UTC 和本地时区存储日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com