Java中new Date().getTime()时间戳使用详解
作者:L.ZZ
文章解释了Java和JavaScript中Date对象的`getTime()`方法返回的是从特定时区(1.UTC)起至当前时间的总毫秒数,强调与程序实际运行的时区无关,都是从UTC时间起计算,强调文章最后强调了个人观点,并鼓励大家多多支持脚本之家
getTime()返回值
Java和JavaScript都支持时间类型Date,他们的getTime()方法返回的是毫秒数。
默认返回的是13位数字,单位是毫秒。
注意事项
/**
* Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
* represented by this <tt>Date</tt> object.
*
* @return the number of milliseconds since January 1, 1970, 00:00:00 GMT
* represented by this date.
*/
public long getTime() {
return getTimeImpl();
}
容易造成误解的地方
如果程序运行在东八区,它返回北京时间1970年01月01日08时00分00秒起至现在东八区时间的总毫秒数。
如果运行在UTC时区则返回1970年01月01日00时00分00秒起至当前UTC时间的总毫秒数。
看起来似乎getTime()方法获取的时间戳与程序所运行的时区有关。
Perdió的解释非常好,摘抄如下:
其实不是的,getTime()本身是没有问题,取到的timestamp就是从1970-01-01 00:00:00(UTC)起到当前的毫秒数。
与程序真实运行的容器(服务器)所在的时区无关。
东八区"北京时间1970年01月01日08时00分00秒"不就是UTC的1970年01月01日00时00分00秒吗。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
