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