2012-08-14 81 views
1

我只是偶然翻過這個方法這與剛剛返回新的System.currentTimeMillis()有什麼不同嗎?

public static Date getNowDate() { 
    final Calendar cal = new GregorianCalendar(); 
    cal.setTime(new Date()); 
    return cal.getTime(); 
} 

都會調用是這樣的:

getNowDate().getTime() 

這是從剛剛打電話

System.currentTimeMillis() 

有什麼不同?

+0

我找到了一個鏈接http://stackoverflow.com/questions/368094/system-currenttimemillis-vs-new-date-vs-calendar-getinstance-gettime 希望它有助於 問候 – Chakri 2012-08-14 09:17:28

+0

這'getNowDate()'方法以一種過於複雜的方式來做事 - 它屬於[The Daily WTF](http://thedailywtf.com/)... – Jesper 2012-08-14 09:34:59

回答

2

他們都多,除了相同的性能。

System.currentTimeMillis的()是一個系統調用,因此需要大約0.1至0.3微秒(取決於你的操作系統上)

新日期()也創建一個對象,它只需約0.1〜0.3微秒更多但創造一點垃圾。

Calendar.getInstance()創建一個昂貴的一組對象,需時約33 微秒

3

長(millis)來的結果返回值

如果您希望當前日期,簡單的辦法是,你要設置日曆的日期和檢索它放回getNowDate()可以簡化爲方面沒有差別遵循

public static Date getNowDate() { 
    return new Date(); 
} 
+0

我不知道效率方法是否有所不同。 – overbet13 2012-08-14 09:06:47

0

不認爲有兩個,在結果形式之間的任何差別,因爲他們都將返回長值從直到日期1970年1月1日可追溯。

即使簡單地調用Date d = new Date();給你的當前日期和 調用d.getTime();返回其長期repersentation

相關問題