如何在node.js中设置默认时区?


当前回答

只要在你的主文件中设置环境变量,比如index.js或app.js或main.js或任何你的文件名:

process.env.TZ = "Asia/Tehran";

这将设置将在整个节点应用程序中使用的时区

其他回答

来自@uhef的解决方案env TZ='Europe/Amsterdam' node server.js适用于应用程序不能使用fork进程的情况,但当你使用fork进程时,特别是当你使用像gulp这样的构建工具启动应用程序时,命令gulp将接受env值,但gulp创建的进程不(你的应用程序)。

要解决这个问题,你必须做到:

$ export TZ="Europe/Amsterdam"; gulp myTask

这将为您正在使用的控制台中启动的所有进程设置TZ环境变量,包括在同一个控制台中gulp命令后执行的所有子进程,而不需要使用export TZ="Europe/Amsterdam"前缀执行它们;一次。

不幸的是,设置process.env.TZ工作得不是很好——基本上不确定什么时候更改会生效)。

因此,在启动节点之前设置系统时区是唯一正确的选择。

但是,如果您不能这样做,应该可以使用节点时间作为一种变通方法:以本地时间或UTC时间获取时间,并将它们转换为所需的时区。参见如何在Nodejs中使用时区偏移?获取详细信息。

只要在你的主文件中设置环境变量,比如index.js或app.js或main.js或任何你的文件名:

process.env.TZ = "Asia/Tehran";

这将设置将在整个节点应用程序中使用的时区

这里是一个100%工作的例子,在NodeJs中获得自定义时区日期时间,而不使用任何外部模块:

const nDate =新日期()。toLocaleString(“en - us”{ 时区:“亚洲/加尔各答” }); console.log (nDate);

我使用这个NPM包unix-system-timezone