为什么以毫秒为单位添加时间显示不正确的结果?

追逐者

我无法弄清楚调试视图中的以下代码发生了什么:

public void addTime(int day, long offsetMillis) {

    long currentTime = mCalendar.getTimeInMillis();
    long newTime = currentTime + offsetMillis;

    Date offsetDate = new Date(offsetMillis);
    Date currentDate = new Date(currentTime);
    Date newDate = new Date(newTime);
    // ...
}

在此处输入图片说明

我有需要添加到当前时间的时间(以毫秒为单位)。查看调试状态,我可以看到 offsetDate 转换为 23:46,这是我想要添加的正确时间量。

currentDate 是当前时间,即给定日期 00:00 的开始。

newDate 是当前时间加上偏移量,即 13:46。

这是不正确的,看起来 GMT 是这里的区别,但正如您所看到的,GMT 在调试视图中都是 +10。所以我一生都无法弄清楚Java在做什么......请帮我解决这个问题?给定时间(以毫秒为单位),如何将其添加到给定日期?

3141

所有的计算都是正确的。您指定的毫秒数实际上等于 13 小时 46 分钟。offsetDate 只显示 23:46,因为时区设置为 GMT+10。

Unix 时间戳通过计算自 1970 年 1 月 1 日 00:00 UTC 以来经过的毫秒数来工作。该日期相当于 1970 年 1 月 1 日 10:00 UTC+10。因此,为您的 offsetDate 显示的时间本身偏移了 10 小时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的测验结果显示不正确?

在Android中将毫秒转换为本地时间时,为什么时间不正确?

为什么 FullCalendar 显示不正确?

libc hypot函数似乎为double类型返回不正确的结果...为什么?

输入FFFFFFFF(8 F)时,为什么此BigInteger显示不正确的结果

为什么我的Hovertool(来自bokeh)显示不正确的结果?

为什么添加日期对象和时间对象会返回不正确的值?

为什么 Google Chrome Mobile 中的“日期”和“时间”条目显示不正确?

为什么时间序列收集图中的数据显示不正确?

为什么Pivot将错误显示为“靠近'4721'的语法不正确”

isAbstract()返回修改不正确的结果 - 为什么?

为什么从OpenMP程序得到不正确的结果?

为什么总和的平均结果不正确?

为什么Date.parse给出不正确的结果?

为什么此哈希表产生不正确的结果?

为什么我的程序返回的结果不正确?

为什么循环中函数的结果不正确?

为什么 VPMOVMSKB 似乎产生了不正确的结果?

为什么time.Parse解析时间不正确?

为什么iOS中的Avplayer时间不正确

为什么我的离散时间傅立叶变换不正确?

为什么Django rest框架中的时间不正确

为什么SwiftUI呈现的视图显示不正确?

iOS:为什么Facebook注销按钮显示不正确?

为什么我的 HTML div 显示不正确?

为什么我的通知小程序显示不正确?

为什么我的android按钮显示的背景不正确?

为什么“ [x] y”在RTL方向显示不正确?

为什么队列显示不正确的数据?