Calendar.getInstance()。getTime()是否会给我一个与新Date()不同的答案?

时间:2012-08-14 20:17:47

标签: java

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

2 个答案:

答案 0 :(得分:13)

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

然而,日历实现需要考虑其他因素,例如Locale,或者如果语言环境是JP或TH ......您可以在两个类的源代码中看到它。

答案 1 :(得分:-1)

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

Calendar.getInstance().getTime():返回表示此日历时间值的Date对象(距离Epoch(1970年1月1日00:00:00.000 GMT(格里高利))的毫秒偏移量。)“)。

new Date():在内部使用System.currentTimeMillis(),分配一个Date对象并对其进行初始化,使其表示分配时间,测量精确到毫秒。当前时间与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