gpt4 book ai didi

Java Date 对象显示 future 的时间

转载 作者:太空宇宙 更新时间:2023-11-04 14:37:51 25 4
gpt4 key购买 nike

我正在当前时间之前的某个时间创建一个新的日期对象。如果我在今天前 1 天展示它,效果很好。但如果我想显示 30 天前,它会转到 future (?)

Date date = new Date();
long sometime = 24 * 60 * 60 * 1000; //a day
System.out.println(date.getTime() );
Date sometimeago = new Date(date.getTime() - sometime);
System.out.println(sometimeago );
sometime = 30* 24 * 60 * 60 * 1000; //a month
sometimeago = new Date(date.getTime() - sometime);
System.out.println(sometimeago );

输出:

1408160853776
Thu Aug 14 20:47:33 PDT 2014
Thu Sep 04 13:50:21 PDT 2014

这里有什么限制?达到多头限制?

最佳答案

int 文字中的整数溢出,

在您的情况下,int 文字之前会被评估,这会导致负结果,然后被分配给 long

sometime = 30* 24 * 60 * 60 * 1000; //a month 

这会导致-1702967296

将其转换为

sometime = 30* 24 * 60 * 60 * 1000L; //a month 

注意:L使其成为long文字,然后相乘

最好使用Calendar类进行Date操作

<小时/>

另请参阅

关于Java Date 对象显示 future 的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25336777/

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