我在本地开发了一个应用程序(这是我的第一个真正的商业应用程序),时间戳设置为操作系统使用的时区。当我将我的应用程序放在托管在不同时区的服务器上时,我没有考虑到会产生不同日期的NOW()
事实TIMESTAMP
。
在阅读了我的问题之后,处理这个问题的正确方法显然是将日期/时间戳存储在 UTC 中,并将它们在客户端代码上转换为所需的指定时区。不幸的是,我的应用程序运行了很长时间,并且有 1000 个条目标记到特定时区,我通过以下方式进行了 hacky 修复:
SET time_zone='-6:00'
现在我正在为 DST 苦苦挣扎(因为 MySQL 服务器不支持我正在使用的时区名称)。
我应该尝试将所有代码转换为 UTC->Timezone 和所有数据库到 UTC 吗?还是我应该让主机安装处理 DST 的正确时区名称?