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

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

根据这个谷歌组线程 ,你可以在调用任何date函数之前设置TZ环境variables。 只是testing它,它的工作原理。

> process.env.TZ = 'Europe/Amsterdam' 'Europe/Amsterdam' > d = new Date() Sat, 24 Mar 2012 05:50:39 GMT > d.toLocaleTimeString() '06:50:39' > ""+d 'Sat Mar 24 2012 06:50:39 GMT+0100 (CET)' 

你以后不能改变时区,因为那时Node已经读取了环境variables。

不幸的是, 设置process.env.TZ并不能很好地工作 – 基本上这个更改是无效的)。

所以在启动节点之前设置系统的时区是唯一的select。

但是,如果您不能这样做,应该可以使用节点时间作为解决方法:在本地或UTC时间获取您的时间,并将其转换为所需的时区。 请参阅如何在Nodejs中使用时区偏移? 了解详情。

至less在Linux环境下,至less对我来说工作的另一种方法是运行Node.js应用程序,如下所示:

 env TZ='Europe/Amsterdam' node server.js 

这至less应该确保从一开始就已经正确设置了时区。

从@uhef解决schemeenv TZ='Europe/Amsterdam' node server.js在您的应用程序不能与分叉进程一起工作的情况下工作,但是当您使用分叉进程时,特别是当您使用构build工具启动应用程序时像吞咽 ,命令gulp将采取env的价值观,但由吞噬不(您的应用程序)创build的过程。

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

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

这将为您正在工作的控制台中启动的所有进程设置TZ环境variables,包括在同一控制台中执行gulp命令后的所有后继进程,而无需使用前缀export TZ="Europe/Amsterdam"; 再次。

你可以花点时间。 它可以让你设置你的位置,也照顾夏令时。

我知道这个线程是非常古老的,但我认为这会帮助像我这样从谷歌登陆这里的任何人。

在GAE Flex(NodeJs)中,您可以在app.yaml文件中设置环境variablesTZ(pipe理应用程序中所有date时间区域的variables),我在这里给你一个例子:

的app.yaml

 # [START env] env_variables: # Timezone TZ: America/Argentina/Buenos_Aires