gpt4 book ai didi

java - 日期总是得到不同的 getTime()

转载 作者:行者123 更新时间:2023-12-02 02:11:05 25 4
gpt4 key购买 nike

我想知道为什么我总是得到这个日期之间以毫秒为单位的差异。

有什么想法吗?

这是输出:

date = 1572794103293 ms 
date2 = 1572794103341 ms
date3 = 1572794103341 ms
date4 = 1572794103341 ms

这是代码:

Date date = createDate();
Date date2 = createDate();
Date date3 = createDate();
Date date4 = createDate();
System.out.println(date.getTime());
System.out.println(date2.getTime());
System.out.println(date3.getTime());
System.out.println(date4.getTime());

private static Date createDate() {
Calendar c = GregorianCalendar.getInstance();
c.set(2019, Calendar.NOVEMBER, 03, 16, 15, 03);
return c.getTime();
}

最佳答案

Calendar.set 的文档中,据说:

Sets the values for the fields YEAR, MONTH, DAY_OF_MONTH, HOUR, MINUTE, and SECOND. Previous values of other fields are retained. If this is not desired, call clear() first.

原因是并非所有字段都使用此方法设置,在您的情况下,您没有设置 MILLISECOND 。因此它保留了实例创建时的值。

Calendar.clear的来电将会

Sets all the calendar field values and the time value (millisecond offset from the Epoch) of this Calendar undefined.

一个简单的例子:

    Calendar c = GregorianCalendar.getInstance();
c.clear();
c.set(2019, Calendar.NOVEMBER, 03, 16, 15, 03);

System.out.println(c.getTimeInMillis());

1572794103000

未定义毫秒将给出 0

关于java - 日期总是得到不同的 getTime(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50023432/

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