gpt4 book ai didi

对同一日期使用不同方法的 java.util.Date 类给出不同的输出

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:01 24 4
gpt4 key购买 nike

public static void main(String[] args) throws ParseException {
// create a date
Date date = new Date();
long diff = date.getTime();
Date date1 = new Date(2013, 10, 1, 11, 6);
long diff1 = date1.getTime();
System.out.println("date is 1-10-2013, " + diff + " have passed.");
System.out.println("date is 1-10-2013, " + diff1 + " have passed.");
}

输出是

date is 1-10-2013, 1380605909318 have passed.
date is 1-10-2013, 61341428160000 have passed.

有人可以详细说明 1380605909318 和 61341428160000 之间的区别吗?

最佳答案

这一行:

Date date1 = new Date(2013, 10, 1, 11, 6);

...不做你想做的事。这将创建一个 Date 对象,表示 3913 年的 11 月 本地时间 11:06。我不认为那是你想要的。

确实,如果您更改代码以包含日期本身而不是硬编码您认为正确的值,您会看到:

System.out.println("date is " + date + ", " + diff + " have passed.");
System.out.println("date is " + date1 + ", " + diff1 + " have passed.");

构造函数被弃用是有原因的 - 你应该注意弃用,以及 the documentation .

现在您可以只使用 java.util.Calendar - 但实际上我建议您使用 Joda Time相反,如果可能的话。这是一个比 java.util.Calendar/Date 干净得多的 API。或者,如果您可以使用 Java 8 的预发布版,它具有新的 JSR-320 日期/时间 API。

关于对同一日期使用不同方法的 java.util.Date 类给出不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19108794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com