收藏
回答

云函数云开发控制台设置 TZ 为 Asia/Shanghai无效?

请问一下现在可以通过TZ环境变量方式修正时区吗?社区里帖子都太陈旧了。目前本人亲测通过TZ方式不行。请问一下还有什么方式可以解决

回答关注问题邀请回答
收藏

1 个回答

  • 疯狂的小辣椒
    疯狂的小辣椒
    2022-01-21

    云函数的运行环境内保持的是 UTC 时间,即 0 时区时间,和北京时间有 8 小时的时间差。

    可以通过语言的时间处理相关库或代码包(如 moment-timezone),识别 UTC 时间并转换为+8 区北京时间。

    注意:当前云开发支持的函数版本为 Node 10,无法通过设置环境变量 TZ=Asia/Shanghai 指定时区(Node 15+版本支持)。

    参考代码:

    const moment = require("moment-timezone"); // 需在 package.json 中指定并安装依赖
    
    exports.main = async (event, context) => {
      // javascript date
      console.log(new Date()); // 2021-03-16T08:04:07.441Z (UTC+0)
      console.log(moment().tz("Asia/Shanghai").format()); // 2021-03-16T16:04:07+08:00 (UTC+8)
    };
    

    https://docs.cloudbase.net/cloud-function/timezone

    2022-01-21
    有用
    回复
登录 后发表内容