2012-08-14 70 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

相关问题