gpt4 book ai didi

java - Java Date 构造函数 Date(long date) 有什么问题?

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

我有两个对象,p4 和 p5,它们都具有 Date 属性。在某些时候,构造函数工作正常:

p4.setClickDate(new Date(System.currentTimeMillis() - 86400000 * 4));

将日期设置为 Sun Jul 31 11:01:39 EDT 2011

在其他情况下它不会:

p5.setClickDate(new Date(System.currentTimeMillis() - 86400000 * 70));

将日期设置为 2011 年 7 月 15 日星期五 04:04:26 EDT

根据我的计算,这应该将日期拨回 70 天,不是吗?

我可以使用 Calendar 解决这个问题,但我很好奇为什么 Date 会这样。

谢谢!

最佳答案

这是由整数溢出引起的。整数的最大值为 Integer.MAX_VALUE这是 2147483647。您需要通过添加 L 后缀来明确指定该数字为 long

p5.setClickDate(new Date(System.currentTimeMillis() - 86400000L * 70));

对比结果自己看

System.out.println(86400000 * 70); // 1753032704
System.out.println(86400000L * 70); // 6048000000

另见:

关于java - Java Date 构造函数 Date(long date) 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944164/

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