Java中new Date().getTime()时间戳问题

1. getTime()返回值

JavaJavaScript都支持时间类型Date,他们的getTime()方法返回的是毫秒数。默认返回的是13位数字单位是毫秒

2. 注意事项

 /**
     * 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秒"不就是UTC1970年01月01日00时00分00秒吗。

参考

  1. https://blog.csdn.net/qq_27127145/article/details/94554678
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值