1

我只是偶然发现了这种方法

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

它被这样调用:

getNowDate().getTime()

这和打电话有什么不同吗

System.currentTimeMillis()

?

4

3 回答 3

3

在 long (millis) 的结果返回值方面没有区别

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

public static Date getNowDate() {
  return new Date();
}
于 2012-08-14T09:04:47.817 回答
2

除了性能之外,它们都差不多。

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

new Date() 还创建了一个对象,它只需要大约 0.1 到 0.3 微秒,但会产生一些垃圾

Calendar.getInstance() 创建一组昂贵的对象,并且需要大约33微秒。

于 2012-08-14T09:36:33.550 回答
0

认为这两者之间没有任何区别,以 result 的形式,因为它们都将返回从 1970 年 1 月 1 日至今的长值。

即使只是简单地调用Date d = new Date();也会给你现在的日期,调用d.getTime();返回它的长表示

于 2012-08-14T09:30:34.003 回答