2 min read

n8n 时区设置指南:解决你的自动化工作流时间混乱问题

兄弟们,今天聊聊 n8n 那个让人头秃的时区问题。

说实话,刚开始用 n8n 的时候,我也被时区整懵了。明明是北京时间早上 8 点发的任务,到了 n8n 里显示的却是凌晨或者前一天的时间,搞得工作流调度全乱了。后来才发现,这玩意儿默认用的 UTC 时间,跟咱们北京时间差了 8 个小时!

问题其实很好解决,核心就是设置一个环境变量 GENERIC_TIMEZONE。这个变量就像是给 n8n 指定了"我要用哪个地方的时间",设置好后它就会按照你指定的时区来处理所有的时间相关操作。

如果你在北京或者上海这些东八区的地方,直接设置成 Asia/Shanghai 就行了。命令很简单:

export GENERIC_TIMEZONE=Asia/Shanghai

不过要注意,这个命令只是临时生效的。如果你想要永久设置,得根据你用的环境来定。

如果你是用 Docker 跑的 n8n,那就在 docker-compose.yml 文件里加个环境变量:

environment:
  - GENERIC_TIMEZONE=Asia/Shanghai

重启一下容器就搞定了。

如果你是在 Linux 服务器上直接安装的,那就在 ~/.bashrc 或者 /etc/profile 里加上这行,然后 source 一下配置文件,重启 n8n 服务就 OK 了。

设置完之后,你会发现 n8n 里的所有时间都变得正常了。任务调度、定时触发器、时间戳显示,全部按照你设定的时区来。那种"明明是今天早上 9 点的定时任务,结果昨天半夜就执行了"的蛋疼情况再也不会出现了。

对了,再啰嗦一句,除了 Asia/Shanghai,你也可以设置成其他时区。比如东京就用 Asia/Tokyo,纽约就用 America/New_York,具体怎么写可以去查一下 IANA 时区数据库,里面支持全世界所有的时区。

总之,时区问题虽然看起来是小细节,但在自动化工作流里真的很重要。设置好之后,你的 n8n 就能按时按点地干活,不会再给你整那些让人抓马的时间错乱问题了。

希望这篇文章能帮到你,如果还有其他 n8n 使用上的问题,随时评论区交流哈!