这与返回新的System.currentTimeMillis()有什么不同?

时间:2012-08-14 09:03:39

标签: java date

我偶然发现了这个方法

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

这样被调用:

getNowDate().getTime()

这与调用

有什么不同
System.currentTimeMillis()

3 个答案:

答案 0 :(得分:3)

长(毫)的结果返回值没有区别

如果您希望使用当前日期,则更简单,您可以在日历中设置日期并在getNowDate()中将其检索回来,这可以简化如下

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

答案 1 :(得分:2)

除了表现之外,它们都是一样的。

System.currentTimeMillis()是系统调用,因此需要大约0.1到0.3微秒(取决于您的操作系统)

new Date()还会创建一个对象,只需要0.1到0.3微秒更多,但会产生一些垃圾。

Calendar.getInstance()会创建一组昂贵的对象,并且需要 33 微秒更多

答案 2 :(得分:0)

不认为这两者之间存在任何差异,以结果的形式存在,因为它们都会返回1970年1月1日以后的长值直到约会。

即使只是致电Date d = new Date();也会为您提供当前日期和 调用d.getTime();返回其长期重新访问