linux 时区 -0500,Nodejs 修改 Linux 时间、时区

2023-11-07

最近遇到了时区设置的问题

在Nodejs中,取当前时间(GMT格式)可以使用Date

var GMTDate = new Date();//Sun Mar 06 2016 20:42:44 GMT-0500 (GMT)1

但有时候server的时间要求是GreenWich时间,就是零时区

可以这样设置

process.env.TZ = 'Europe/London';//可以切换到任意时区var date = new Date();

console.log(date);//Mon Mar 07 2016 01:44:04 GMT+0000 (GMT)1234

问题解决

写文章的时候笔者还在使用0.12版本,经过测试,上面的代码在v5.3.0中还可以正常发挥做用,但在6.9.4或者最新的7.6.0中都不能正常工作了。

在旧的版本中,打印一个date对象返回的是当前时区的时间,但在新版的Node中,直接返回的就算是世界时,也就是greenwich时间,相比东八区要早8个小时,格式也不再是GMT格式,这代表开发者就算要获取当前时间都要做一下额外转换。

var date = new Date();//2017-04-30T14:44:10.977Z 世界时间console.log(date);

//4/30/2017, 10:44:10 PM 转换成本地时间console.log(date.toLocaleString());12345

稍微在网络上搜索一下,可以发现一个名为timezone的npm模块,如果读者有兴趣可以自行探索该模块的使用方法,在本节的内容里,笔者打算自己实现可用的模块。

**

自己实现timezone的修改

**

经过试验,虽然设置process.env.TZ的方法不能用了,但我们完全可以自己实现一套代码出来。

为此,我们首先在Date对象的prototype上声明一个map结构作为属性,用于存储时区名称和偏移量的关系,然后对Date类的Date方法进行修改,如果没有声明process.env.TZ变量,就默认返回原来的date对象,如果声明了该属性,就先到对应的数组中进行搜索,然后返回修改后的date对象。

process.env.TZ = "America/New_York";Date.prototype.TimeZone = new Map([

['Europe/London',0],

['Asia/Shanghai',-8],

['America/New_York',5]

])Date.prototype.zoneDate = function(){

if(process.env.TZ == undefined){ return new Date();

}else{ for (let item of this.TimeZone.entries()) { if(item[0] == process.env.TZ){ let d = new Date();

d.setHours(d.getHours()+item[1]); return d;

}

} return new Date();

}

}var date = new Date().zoneDate();

console.log(date);1234567891011121314151617181920212223

在上面的代码里,如果声明了process.env.TZ这一属性,再调用zoneDate就能得到对应时区的date啦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux 时区 -0500,Nodejs 修改 Linux 时间、时区 的相关文章

  • 这三个 Go 水平自测题,你手写不出来还是先老实上班吧,过来看看

    现在技术文章特别卷 啥啥底层都能给你分析的头头是道 但是分析的对不对要看作者水平 很有可能一个错 抄他的那些人也跟着错 因为我以前看源码的时候就经常感觉自己在两种状态下切换 懂了 娘咧漏看了 这个函数干啥的 八股文这个事儿 其实也特别考验面
  • 如何去除WinRAR弹窗广告

    WinRAR 作为知名的老牌压缩软件 二十余年来始终风靡全球 经久不衰 但对于中国用户 其简体中文的个人免费版安装后会有 评估版本 的标记 而且每次启动时会有代理商的弹窗广告 本文教你如何去除标记和弹窗广告 让你的 WinRAR 恢复纯净体
  • 最优控制的理解

    最优控制 在满足一定约束的情况下 寻求最优控制策略 使得性能指标取极大值或极小值 对一个受控的动力学系统 从一类允许的控制方案中寻找一个最优的控制方案 使得系统的运动从由某个初始状态转移到目标状态的同时 其性能指标值为最优 性质 在一般的情
  • Cartoon头像 InsCode Stable Diffusion 美图活动一期

    一 简单介绍和活动地址 简单介绍 试用Stable Diffusion 模型生成优质人物好图 更简单地炼丹 InsCode是一个集成了在线IDE 在线AI编程 在线算力租赁 在线项目部署以及在线SD 模型使用的综合代码开发平台 不论你是初级
  • 基础算法题——找筷子(位的异或)

    找筷子 题目描述 经过一段时间的紧张筹备 电脑小组的 RP 餐厅 终于开业了 这天 经理 LXC 接到了一个定餐大单 可把大家乐坏了 员工们齐心协力按要求准备好了套餐正准备派送时 突然碰到一个棘手的问题 筷子 CX 小朋友找出了餐厅中所有的
  • VS+Qt应用开发,设置软件图标Icon

    VS Qt应用开发 设置软件图标Icon 前言 一 索然无味的默认icon图标 二 如何设置自己喜欢的icon图标 1 选择自己喜欢的图标 2 设置可执行文件 exe 图标 3 设置标题栏和任务栏图标 三 效果 四 工程源码 前言 VS版本
  • 深度学习系列笔记(一)——深度学习简介与反向传播机制

    深度学习简介 深度学习的发展趋势 Fully Connect Feedforward Network举例 反向传播 符号表示 计算Loss对Params的偏导数 符号说明 过程 例子 参考文献 深度学习的发展趋势 回顾一下deep lear
  • Tablayout+viewpager+Fragment的fragment页面数据不显示

    开发中经常使用Tablayout ViewPager与Frament 联动 之前fragment 页面创建比较少 没有出现什么问题 但是当创建frament页面页面比较多的时候 fragment 页面的数据会有不显示 想了各种办法没有解决
  • 海湾汉字编码表全部_汉字编码对照表

    这里写自定义目录标题 海湾汉字编码APP 蛮好用的 在某宝里搜 海湾汉字编码App 就能找到了 作者一直在更新
  • 使用arduino Nano 自制nRF24LE1 的烧录器进行固件烧录

    也有专门usb编程器 比较贵 可以买个arduino nano自已做一个 1 下载arduino的烧录固件 https github com garcezluz nRF24LE1 Programmer 2 使用arduino编译烧录固件 3
  • 计算机毕业设计如何制作电子商务网站怎么制作购物网站计算机课程设计电子商城做什么(PHP-ASP.NET-c#-JavaWeb-SSM-SSH-J2EE-springBoot

    如果计算机毕业设计选题是 lt lt 电子商务网站 gt gt lt lt 购物网站 gt gt 这样的题目 那么灵魂问答如下 需要实现什么功能呢 怎么样挑选适合自己的编程语言 使用什么前端框架 使用什么数据库 通过本文将给您找到以上答案
  • 【linux kernel】linux内核数据结构分析之哈希表

    Linux内核中实现了一套经典的哈希表操作 定义在 include linux list h文件中 本文基于linux内核源码6 2 7 记录了其常用操作哈希表的API函数 便于在阅读linux内核源码时更好的理解程序执行的过程和细节 在L
  • 外部中断实验

    外部中断简介 前一篇详细介绍了51 单片机的中断系统 这里再简单回顾一下 当中央处理机 CPU 正在处理某件事的时候外界发生了紧急事件请求 要求 CPU 暂停当前的工作 转而去处理这个紧急事件 处理完以后 再回到原来被中断的地方 继续原来的
  • Swift set/get方法

    Swift 中重写属性的set和get方法 Swift中如何重写属性的set和get方法 set和get方法的本质是什么 set和get方法紧跟着属性后面写 很紧凑 也清楚 class Person NSObject var name st
  • 并发编程系列——6线程池核心原理分析

    学习目标 线程池的作用 jdk给我们提供了哪几种常用线程池 线程池有哪几大核心参数 线程池的拒绝策略有哪些 线程中阻塞队列的作用 线程池的工作流程 线程池的设计思维 线程池中的阻塞队列如果用默认的 会有哪些问题 线程池的工作状态有哪些 线程
  • openERP为何改名odoo

    5月15日 OpenERP S A 在合作伙伴Webinar 宣布 OE即将改名Odoo 融资1000万美元 代码托管更换到Github 很多内容 OpenERP 名字更改 合作伙伴合作方式也有新政策 OpenERP开源 Odoo仍将继续开
  • go语言判断 slice,array,map中是否存在某个元素

    最近在用go重构以前python写的项目 遇到一些问题 总结一下 自己水平比较菜 遇到问题较低级 自己总结一下 免得忘了 很简单的需求 判断某个元素是否在 slice array map中 其实很简单 但是还是python最简单啊 func
  • 微信消息模板换行符转义问题处理

    通常的微信模板 Hello n n Are you OK 直接定义字符串 数据库中读取 这里需要说明的是 数据库读取 的内容 如果直接推送 n n是没有被转移为换行符的 此时需要 tplStr readDb tpl str replace
  • Hbase 常用 Shell 命令

    一 基本命令 打开 Hbase Shell hbase shell 1 1 获取帮助 获取帮助 help 获取命令的详细信息 help status 1 2 查看服务器状态 status 1 3 查看版本信息 version 二 关于表的操

随机推荐

  • OBB盒的实现

    制造几何仿真中的碰撞检测通常视为针对刚体对象间的碰撞检测 这样的话可以把非刚体即软体的建模和变形算法对碰撞检测的影响减少到最小 常见成熟的基于包围盒的碰撞检测 box intersection test 算法如 1 沿坐标轴的包围盒AABB
  • python typing库_Python3标准库漫游之Typing.overload

    Python3标准库漫游之Typing overloadPython3 gt 3 5 Python3 5开始Python把Typing作为标准库引入 低版本可以使用独立的Typing包 问题来源于一个QQ群友的提问 顺着问题我看了下Typi
  • 学计算机用苹果本,新手小白用苹果电脑搞科研,学会这些才不至于尴尬!

    搞科研的朋友们每天都离不开电脑 于是 科研界又分为 Windows 派和 Mac 派 要想提高生产力 本人还是想大吼一声 Mac 大法好 看着师弟师妹对着苹果电脑咬牙切齿 恨不得分分钟砸了它 殊不知不是系统不好用 而是我们了解得太少 如何避
  • 数字图像处理汇总(附实现代码)

    包含所有代码的GitHub地址 https github com Code 0x00 pyCV 标题及连接 摘要 数字图像彩色空间 RGB HSV Lab CMYK 及其转换公式 灰度共生矩阵 GLCM 附Python代码 灰度共生矩阵的原
  • Element el-table 列表自动滚动

    1 首先在
  • 数字IC手撕代码-分频器(任意小数分频)

    前言 本专栏旨在记录高频笔面试手撕代码题 以备数字前端秋招 本专栏所有文章提供原理分析 代码及波形 所有代码均经过本人验证 目录如下 1 数字IC手撕代码 分频器 任意偶数分频 2 数字IC手撕代码 分频器 任意奇数分频 3 数字IC手撕代
  • Dynamics CRM 分页查询

    分页查询 FetchXML查询 表达式查询 在使用CRM组织服务查询的时候 默认查询数据条数最大值为5000条 想查询全部的数据需要使用分页查询 FetchXML查询 官网实例 单次查询的个数 int pageSize 5000 第几页 i
  • 逐行读取数据,并查找特定数据

    import java io BufferedReader import java io FileReader import java io InputStreamReader public class Solution public st
  • SSH框架总结(框架分析+环境搭建+实例源码下载)

    首先 SSH不是一个框架 而是多个框架 struts spring hibernate 的集成 是目前较流行的一种Web应用程序开源集成框架 用于构建灵活 易于扩展的多层Web应用程序 集成SSH框架的系统从职责上分为四层 表示层 业务逻辑
  • mysql盲注脱裤_白帽子挖洞—SQL注入篇

    0x00介绍 SQL注入 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命令 具体来说 它是利用现有应用程序 将 恶意的 SQL命令注入到后台数据库引擎执行的能力 它可以通过在W
  • pta 评委打分

    评委打分 青年歌手参加歌曲大奖赛 有10个评委进行打分 将评分按降序排列 试编程求这位选手的平均得分 去掉一个最高分和一个最低分 指导 这道题的核心是排序 将评委所打的10个分数利用数组按降序排列 计算数组中除第一个和最后一个分数以外的数的
  • Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path

    今天使用axis2访问https格式的webservice 遇到了这个错误Caused by javax net ssl SSLHandshakeException sun security validator ValidatorExcep
  • jupyter notebook安装过程中碰到的问题:1、juepyter notebook按new创建新文件时弹出来的网页是4042、jupyter代码运行时直接跳到下一行没有运行代码

    1 juepyter notebook按new创建新文件时弹出来的网页是404是浏览器的问题 更换默认浏览器即可在系统中搜索默认应用把web浏览器改成edge 如果在更改时一直闪退无法更改默认浏览器可能是你的电脑管家工具箱的浏览器帮你自动锁
  • Linux获得管理员权限

    一 判断此时使用用户是否具有管理员权限 1 采用符号 进行判断 若使用具有管理员权限的用户登录时 将出现 符号 若使用不具有管理员权限的用户登录时 将出现 符号 2 使用uid gid 的group进行判断 具有管理员权限的用户将与root
  • TypeScript 快速上手学习系列 —— 接口

    TypeScript 接口 TypeScript 接口是一系列抽象方法的声明 是一些方法特征的集合 这些方法都是抽象的 需要由具体的类去实现 然后第三方就可以通过这些抽象方法调用 让具体的类执行具体的方法 定义 TypeScript 接口定
  • 以太坊智能合约安全监测工具 Oyente

    金色财经讯 2017年6月19日 数字资产管理公司Melonport AG与Oyente的开发者们合作 发布了一个测试版分析工具 旨在检查可执行的分布式代码合同 EDCC 的缺陷 Melonport和Oyente发布Bug检查工具 来源 金
  • Java多版本环境并存配置

    安装准备 Windows10 java8的jdk java15的jdk 本次操作是在Windows10的系统下进行的 注意 可能java对中文支持的原因 最好java环境和程序使用的路径中不要包含中文 java8 java8最简单的方式就是
  • dataframe数据按行做线性拟合

    转载 https blog csdn net m0 37324740 article details 79529963 数据形式 目的 对每一行进行线性拟合 计算斜率和评估斜率的不确定性 方法 调用python的sklearn包中的线性回归
  • 计网 -《图解http》读书笔记

    1 了解Web 网络基础 1 1 WWW World Wide Web 万维网 3项WWW构建技术 把SGML 通用标记语言 作为页面的文本标记语言的HTML HyperText Markup Language 超文本标记语言 作为文档传递
  • linux 时区 -0500,Nodejs 修改 Linux 时间、时区

    最近遇到了时区设置的问题 在Nodejs中 取当前时间 GMT格式 可以使用Date var GMTDate new Date Sun Mar 06 2016 20 42 44 GMT 0500 GMT 1 但有时候server的时间要求是