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

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是区分时区的,因为要处理时区问题会耗费很多时间。 

全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务