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


当前回答

另一种至少在Linux环境下对我有用的方法是像这样运行你的Node.js应用程序:

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

这至少可以确保从一开始就正确地设置了时区。

其他回答

另一种至少在Linux环境下对我有用的方法是像这样运行你的Node.js应用程序:

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

这至少可以确保从一开始就正确地设置了时区。

有时你可能在其他地方的虚拟服务器上运行代码——当运行NODEJS或其他风格时,这可能会变得混乱。

这里有一个修复程序,可以让你轻松地使用任何时区。

查看这里的时区列表

只需将时区短语放在FORMAT行的括号内。

在本例中,我将EPOCH转换为Eastern。

//RE: https://www.npmjs.com/package/date-and-time
const date = require('date-and-time');

let unixEpochTime = (seconds * 1000);
const dd=new Date(unixEpochTime);
let myFormattedDateTime = date.format(dd, 'YYYY/MM/DD HH:mm:ss A [America/New_York]Z');
let myFormattedDateTime24 = date.format(dd, 'YYYY/MM/DD HH:mm:ss [America/New_York]Z');

来自@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"前缀执行它们;一次。

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

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

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

我知道这个帖子很旧了,但我认为这将帮助任何像我一样从谷歌登陆这里的人。

在GAE Flex (NodeJs)中,你可以在app.yaml文件中设置环境变量TZ(一个管理应用程序中所有日期时区的变量),我给你留了一个例子:

app.yaml

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