You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL now()函数返回错误时区偏移问题求助

解决PostgreSQL now()返回错误Africa/Cairo时区偏移的问题

针对埃及夏令时调整后PostgreSQL now()返回错误时区偏移的问题,可按以下步骤排查修复:

  • 检查容器内tzdata版本
    PostgreSQL依赖系统的tzdata包获取时区规则,即使宿主tzdata已更新,容器内可能仍使用旧版本。在容器内执行:

    apt show tzdata
    

    确认tzdata版本是否包含埃及最新的夏令时调整规则(埃及2023年的DST调整需tzdata 2023a及以上版本)。

  • 更新容器内的tzdata
    如果tzdata版本过旧,执行以下命令更新:

    apt update && apt install --only-upgrade tzdata
    

    更新过程中选择时区为Africa/Cairo。

  • 重启PostgreSQL服务
    时区数据更新后,PostgreSQL需要重启才能加载新规则:

    pg_ctl restart -D /var/lib/postgresql/data
    

    或直接重启容器:

    docker restart <你的PostgreSQL容器名>
    
  • 验证时区规则生效
    重启后执行以下查询验证结果:

    select now();
    select '2023-05-05 23:00:00'::timestamp with time zone;
    select * from pg_timezone_names where name = 'Africa/Cairo';
    

    确认返回的时区偏移为+0300。

  • 检查容器时区挂载配置
    若容器挂载了宿主的/etc/localtime或/usr/share/zoneinfo,确保挂载文件包含最新时区规则。若挂载文件过时,需更新宿主tzdata后重新挂载或重启容器。

内容的提问来源于stack exchange,提问作者Moutaz Salem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:43:18