Node.js中怎么获取北京时间?

news/2025/2/6 9:52:07/

基于Node.js开发开发的时候,调用new Date()出来的时间是这样的:

2017-01-18T09:30:38.405Z

 

而当前时间北京时间是17:30,为了不让自己总有穿越感,于是需要转换一下。

过程可以是这样的(在Node.js的命令行下):

 

> a = new Date();
2017-01-18T09:30:38.405Z
> m = a.getTime()
1484731838405
> o = a.getTimezoneOffset() * 60 * 1000
-28800000
> o = m - o;
1484760638405
> b = new Date(o)
2017-01-18T17:30:38.405Z
>

 

即构造了一个日期,获取时间戳(getTime)再获取本地时间偏移(getTimezoneOffset),然后把原时间减去该偏移,再重新构造一个新时间即可。

 

 

 

如果本地系统如Ubuntu,用的就是UTC时间,那么getTiezoneOffset()将返回0,上面的过程就失效了。

如果要强制转成北京时间,也很简单,就是硬编码-28800000

 

像这样:

 

> a = new Date(new Date().getTime() + 28800000)
2017-01-18T17:34:31.296Z

 

 

注意:转换之后的时间本质上是格林威治时间,只不过我们再调用getHours()等函数的时候,获取的数值是本地的。

当然,也可以用这个方法一次拿到结果 ;-)

new Date().toLocaleString('zh-CN')

 

 

 

 

 

 

 


http://www.ppmy.cn/news/775266.html

相关文章

Java时间类型转换详细代码示例

Java时间类型转换详细代码示例 一、时间类型转换代码示例二、时间标准简介1、UTC(世界标准时间)2、GMT(格林尼治平时)3、CST(北京时间) 三、SimpleDateFormat 参数对照表 一、时间类型转换代码示例 示例代码如下: package com.lyp;import java.text.ParseExceptio…

7、添加billboard小旗子

本节演示添加billboard小旗子,使用第四节click的例子,通过鼠标点击地图添加billboard添加小旗子。 1、修改鼠标点击事件mouseUp,在函数中创建BillboardCollection对象并添加到地图中。鼠标点击时获取鼠标位置,转换成经纬度然后添…

互联网生活中的隐私保护:用隐私换便利还是花钱护隐私?

近日,某高校毕业生在校期间窃取学校内网数据,收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代,算法分发带来了隐私侵犯,在享受消费生活等便捷权利的同时,似乎又有不…

惠普HP1600加粉图解 (转载)

HP1600/2600/2605硒鼓加粉图解 转载于:https://www.cnblogs.com/xwf2160/archive/2009/08/04/1538137.html

深入理解java虚拟机精华总结:硬件的效率与一致性、Java内存模型、Java与线程、Java与协程

深入理解java虚拟机精华总结:硬件的效率与一致性、Java内存模型、Java与线程、Java与协程 硬件的效率与一致性Java内存模型主内存与工作内存内存间交互操作对于volatile型变量的特殊规则针对long和double型变量的特殊规则原子性、可见性与有序性原子性可见性有序性 …

Linux 简介

您的“关注”和“点赞”,是认可,是支持,是动力。 如意见相佐,可留言。 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。 本文首发在IT羊资源网。 《IT羊资源网》,网址:https://…

Basic of Solidity (solidity基础)

目录 1.first contract 申明编译器版本 定义合约 合约构造函数 定义变量 定义函数 2.data type 值类型(Value Types) 引用类型(Reference Types) 映射类型(Mapping Types) Solidity是一种用于编写…

Win11或win10开机自启文件夹(备用)

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 有时候会用到自定义的开机自启的软件程序,把快捷方式放这里 实现开机自启