服务器默认时区:设置与校准

509 字
3 分钟
服务器默认时区:设置与校准

服务器时区不对是一种慢性毒药#

刚部署完一台新的VPS,一切跑得好好的。几周之后发现crontab设置的凌晨备份任务实际执行时间偏差了整整几个小时,查看日志里应用返回的错误埋的时间也对不上实际故障发生的时刻。排查到最后发现时区是UTC没用国内标准时间,所有基于时间判断的逻辑在整个生产链条中全线偏移。

检查当前时区#

用date命令直接输出当前的系统日期时间和时区标识;timedatectl命令查看更详细的时区设置状态、RTC时钟状态和NTP同步情况。很多云服务器默认设置为UTC,国内服务器不加修改会导致所有业务调度平移。

设置正确的时区#

Terminal window
# 查看可用时区列表并过滤国内选项
timedatectl list-timezones | grep Asia
# 设置为国内标准时区并确认
timedatectl set-timezone Asia/Shanghai
timedatectl status

软件层面的时区设置也需要同步:PHP的date.timezone参数在php.ini中设定;MySQL的全局和会话级时区变量;Python代码中启动时统一设置环境变量;Node.js推荐全局绑定时区到对应区域配置。

硬件时钟和NTP自动校准以及Docker全局注意事项#

硬件时钟的本地标准设置需要与系统时区保持一致。NTP服务确保系统时钟在长期运行中始终和标准时间服务器同步更新,避免时间偏移累积。

Docker容器继承宿主机的时区设置,推荐在compose中统一挂载宿主机区域的时间配置声明确保所有容器共用一致时间基准。

服务器时区校准是全栈时间逻辑正确性的底层地基,不要等离线业务毫不知情偏移导致了损失的第一颗填充梭后才后知后觉。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

服务器默认时区:设置与校准
https://yfd5224.github.io/posts/server-timezone-fix/
作者
ddd
发布于
2025-10-23
许可协议
CC BY-NC-SA 4.0
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
站点统计
文章
270
分类
5
标签
960
总字数
210,898
运行时长
0
最后活动
0 天前

目录