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

TypeScript中Date库的本地时区异常问题排查

问题原因及解决办法
  • 核心问题:Node.js的Date模块仅在进程启动时读取一次TZ环境变量
    你看到的process.env.TZ值是正确的,但如果这个变量是在Node.js进程启动之后才被自动设置的(比如代码运行过程中动态赋值),Date对象并不会感知到这个变化——因为Node.js在启动时就已经初始化了时区配置,后续修改process.env.TZ不会生效。

  • 验证与解决方式
    直接在启动Node.js进程时显式传入TZ变量,比如:

    TZ=Asia/Calcutta node dist/你的编译后文件.js
    

    重新运行代码后,new Date()的打印结果应该会显示GMT+0530(India Standard Time)。

  • 额外验证技巧
    如果你直接打印new Date()时看到的是UTC格式字符串(带Z后缀),可能是控制台默认调用了toISOString()方法。可以手动调用toString()来确认时区显示:

    console.log(new Date().toString());
    

    这个方法会严格根据当前生效的时区格式化输出。


内容的提问来源于stack exchange,提问作者Kshitij Kulshrestha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:32:01