java: new Date().getTime() 与 System.currentTimeMillis() 与 System.nanoTime()

时间:2022-10-31 19:38:38

java使用new Date()和System.currentTimeMillis()获取当前时间戳

在开发过程中,通常很多人都习惯使用new Date()来获取当前时间,使用起来也比较方便,同时还可以获取与当前时间有关的各方面信息,例如获取小时,分钟等等,而且还可以格式化输出,包含的信息是比较丰富的。但是有些时候或许你并不需要获取那么多信息,你只需要关心它返回的毫秒数就行了,例如getTime()。为了获取这个时间戳,很多人也喜欢使用new Date().getTime()去获取,咋一看没什么问题,但其实没这个必要。

其实看一下java的源码就知道了:

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

已经很明显了,new Date()所做的事情其实就是调用了System.currentTimeMillis()。如果仅仅是需要或者毫秒数,那么完全可以使用System.currentTimeMillis()去代替new Date(),效率上会高一点。况且很多人喜欢在同一个方法里面多次使用new Date(),通常性能就是这样一点一点地消耗掉,这里其实可以声明一个引用。

from:

http://www.cnblogs.com/wuchen/archive/2012/06/30/2570746.html

另:

java的System.currentTimeMillis() 和 System.nanoTime() 区别:

java中System.nanoTime()返回的是纳秒,nanoTime而返回的可能是任意时间,甚至可能是负数

主要的用途是衡量一个时间段,比如说一段代码执行所 用的时间,获取数据库连接所用的时间,网络访问所用的时间等

另外,nanoTime提供了纳秒级别的精度,但实际上获得的值可能没有精确到纳秒

java中System.currentTimeMillis()返回的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数

from:

http://www.cnblogs.com/ungshow/archive/2011/12/05/2276333.html