gpt4 book ai didi

Java Date 对象显示 future 的时间

转载 作者:行者123 更新时间:2023-11-30 06:18:02 24 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/25336770/

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