如何在node.js中设置默认时区?
当前回答
这个作品; https://stackoverflow.com/a/53282481/17700714
var date = new Date('2016-08-25T00:00:00')
var userTimezoneOffset = date.getTimezoneOffset() * 60000;
new Date(date.getTime() - userTimezoneOffset);
其他回答
另一种至少在Linux环境下对我有用的方法是像这样运行你的Node.js应用程序:
env TZ='Europe/Amsterdam' node server.js
这至少可以确保从一开始就正确地设置了时区。
不幸的是,设置process.env.TZ工作得不是很好——基本上不确定什么时候更改会生效)。
因此,在启动节点之前设置系统时区是唯一正确的选择。
但是,如果您不能这样做,应该可以使用节点时间作为一种变通方法:以本地时间或UTC时间获取时间,并将它们转换为所需的时区。参见如何在Nodejs中使用时区偏移?获取详细信息。
这里是一个100%工作的例子,在NodeJs中获得自定义时区日期时间,而不使用任何外部模块:
const nDate =新日期()。toLocaleString(“en - us”{ 时区:“亚洲/加尔各答” }); console.log (nDate);
对于那些将Node.js应用程序部署到Amazon AWS Elastic Beanstalk的人,这里有一个答案。我还没有在其他地方看到过这样的记录:
在Configuration -> Software -> Environment Properties下,简单地设置键值对TZ和您的时区,例如America/Los Angeles,然后应用更改。
你可以通过在Node应用程序中输出new Date(). tostring()来验证效果,并注意时区后缀。
设置服务器时区并使用NTP同步。 下面是更改服务器时间的一个更好的解决方案。
列出时区
timedatectl list-timezones
设置时区
sudo timedatectl set-timezone America/New_York
确认时区
timedatectl
我的服务器和数据库更喜欢使用UTC时区。任何转换都必须在客户端处理。 我们可以在客户端使用moment.js。
维护多个实例也很容易,
推荐文章
- 错误:无法找到模块“webpack”
- 如何改变时间和时区在iPhone模拟器?
- 在node.js中使用async / await文件系统
- NodeJS -用NPM安装错误
- 如何为本地安装npm包设置自定义位置?
- 回调函数来处理管道的完成
- Express函数中的“res”和“req”参数是什么?
- node.js TypeError:路径必须是绝对路径或指定根路径到res.sendFile[解析JSON失败]
- Passport.js -错误:序列化用户到会话失败
- Node.js vs .Net性能
- 从电子应用程序中删除菜单栏
- 如何用node.js实现一个安全的REST API
- 如何处理Node.js中的循环依赖
- 在猫鼬,我如何排序的日期?(node . js)
- 如何在Node.js内进行远程REST调用?旋度吗?