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

全部评论

相关推荐

11-03 14:57
西北大学 营销
Belltrix:其实就是每根转动一定的角度
点赞 评论 收藏
分享
10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务