java - getTimeInMillis() 为相同的日期返回不同的值

标签 java date datetime calendar timestamp

我想我没有正确理解 getTimeInMillis()。我一直认为毫秒时间戳代表一个日期,但就我而言,这让我有了不同的想法。在这里,我使用一种方法向数组添加时间戳,如下所示:

Calendar date = Calendar.getInstance();
date.set(2015, 9, 25, 12, 0);
timeArray.push(date.getTimeInMillis());

在代码的其他部分,我在同一日期做同样的事情:

Calendar date2 = Calendar.getInstance();
date2.set(2015, 9, 25, 12, 0);

不幸的是,这个比较返回 false:

timeArray.get(0) == date2.getTimeInMillis();

这两个值不应该是真的吗?或许我对 getTimeInMillis() 方法的理解有误?如果是这样,我怎样才能以其他方式实现我想要做的事情?

最佳答案

我们来看看documenation .
所以根据 set 方法的文档:

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

所以修复应该很简单:只需先调用 clear() 方法即可。

关于java - getTimeInMillis() 为相同的日期返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33336153/

相关文章:

javascript - 比较不同年份的两个日期

c# - 如何使用 MVC3 Razor 格式化 DateTime 属性?

php - 将 Twitter-API 日期时间更改为时间戳的最佳方法

Java IOException : Permission denied on linux while running as owner 错误

java - if/else 语句的用户输入

java - 如何修复 intellij 中的 NoClassDefFoundError 错误?

java - 自定义 Selenium Java Junit4 Webdriver 导出器

Php 时钟 2 小时后退

javascript - JavaScript 的解析将识别哪种字符串日期格式?

javascript - 使用 dd/mm/yyyy 格式计算 2 个日期之间的差异 - 不考虑年份