NodeJS中获取时间戳的方法及其性能对比

JavaScript031

NodeJS中获取时间戳的方法及其性能对比,第1张

Date.now()、new Date().getTime() 和 +new Date() 是浏览器环境下一直都有的,自然不必多说。

process.uptime() 返回的是Node程序已运行的时间,单位秒。

process.hrtime() 返回的是当前的高分辨率时间,格式为[秒, 纳秒]。它是相对于在过去的任意时间,该值与日期无关。优点是:可以获得一个非常精准的时间差,不会受到时钟飘逸的影响;缺点是:速度慢。

要获取一个非常精确地时间间隔,用 process.hrtime();大量循环获取时间戳的时候,要考虑性能,用 Date.now()。

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

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

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

像这样:

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