9

我正在尝试整合一些非常混乱的代码,但我想确保我不会破坏事情。在某些地方,我看到一个创建为的日期,Calendar.getInstance().getTime()而在其他地方,它只是new Date(). 如果我将它们全部转换为new Date()或者是否有某些原因我可能想要使用另一个?

4

2 回答 2

14

理论上不会,因为 java.util.Date 和 java.util.Calendar.getInstance() 最终都使用 System.currentTimeMillis() 来返回当前时间。

但是,Calendar 实现会考虑其他因素,例如语言环境,或者语言环境是 JP 还是 TH……您可以在这两个类的源代码中看到这一点。

于 2012-08-14T20:37:06.967 回答
1

我认为两者都会返回相同的:

Calendar.getInstance().getTime():返回一个表示此日历时间值的 Date 对象(从 Epoch 的毫秒偏移量(1970 年 1 月 1 日 00:00:00.000 GMT (Gregorian).)”)。

new Date():内部使用 System.currentTimeMillis(),分配一个 Date 对象并对其进行初始化,以便它表示分配它的时间,测量到最接近的毫秒。当前时间与 UTC 1970 年 1 月 1 日午夜之间的差异,以毫秒为单位。

我检查过:

public static void main(String[] args) {
    Date date = new Date();
    Date date1 = Calendar.getInstance().getTime();

    System.out.println(date +" = " + date1);

}

输出 :

Wed Aug 15 02:45:15 IST 2012 = Wed Aug 15 02:45:15 IST 2012
于 2012-08-14T20:36:21.560 回答