当前位置: 代码迷 >> 综合 >> new Date().getTime() System.currentTimeMills() 以及其他获取时间戳的区别
  详细解决方案

new Date().getTime() System.currentTimeMills() 以及其他获取时间戳的区别

热度:81   发布时间:2023-12-23 11:36:47.0

1、new Date().getTime() 也可以获取时间戳,但是会有性能上的损耗,原因如下:

public Date() {this(System.currentTimeMillis());
}

  这是 Date的无参构造,其实就是调用了System.currentTimeMills(),然后再传入自己的有参构造,从性能上考虑,如果只是获取时间戳,不考虑时区影响,直接调用System.currentTimeMills()更好一些。

2、System.currentTimeMills()为什么不能考虑时区?

public static native long currentTimeMillis()

从源码中我们可以看出,该方法是一个本地方法 (native 表示java调用非java代码的接口),其时间来源依赖为其做了时区的处理,因此获取时间戳,在不考虑时区的情况下,他是最优选择。

3、另外一种获取时间的方式----日历(calendar)

Calendar.getInstance().getTimeInMillis()

这种方式速度比较慢,原因是Calendar是区分时区的,因为要处理时区问题会耗费很多时间。 

  相关解决方案