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

德黑兰夏令时从4:30调整为3:30后应用时间未同步问题

解决德黑兰夏令时调整后应用时间未更新的问题

排查方向1:验证系统时区数据是否更新到位

  • 在服务器终端执行 timedatectl(Linux)或 tzutil /l(Windows),确认系统的Asia/Tehran时区数据已包含最新夏令时规则。
  • 手动测试时区转换:运行 TZ=Asia/Tehran date,查看输出时间是否符合调整后的3:30偏移。若此处结果异常,说明系统时区数据包未更新,需执行对应系统的更新命令:
    • Ubuntu/Debian:sudo apt install --only-upgrade tzdata
    • CentOS/RHEL:sudo yum update tzdata

排查方向2:检查日期库的时区依赖

  • 若应用使用moment、dayjs等第三方日期库,它们可能自带独立时区数据,不会自动同步系统tzdata:
    • dayjs:更新dayjs-plugin-timezone至最新版本,确保包含德黑兰新规则
    • moment:执行npm update moment-timezone更新时区数据包
  • 排查代码中是否硬编码了时区偏移(如直接写+04:30),这类硬编码会忽略系统时区配置,需改为动态读取时区规则

排查方向3:确认环境变量是否生效

  • 在应用代码中添加打印语句:console.log(process.env.TZ),启动后查看输出是否为Asia/Tehran。若为空,说明启动命令的环境变量传递有问题:
    • Linux/macOS的npm脚本:确保package.json中命令为 "start": "TZ=Asia/Tehran nest start"
    • Windows的npm脚本:改为 "start": "set TZ=Asia/Tehran && nest start"
    • 若使用PM2等进程管理器,需在配置文件中单独设置环境变量(如ecosystem.config.js中添加env: { TZ: 'Asia/Tehran' })

排查方向4:清除缓存与重启进程

  • 完全重启NestJS进程,避免旧时区配置被缓存
  • 清除Node.js模块缓存:执行npm start -- --no-cache,或删除node_modules/.cache目录(若存在)

内容的提问来源于stack exchange,提问作者Farhang Foghani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:03:15