Java日期何时崩溃?
AFAIK java将长变量中的日期存储为毫秒。因此,总有一天不会有值(因为长线有一个最大值)将对应于该瞬间的时间。你知道什么时候会发生吗?
AFAIK java将长变量中的日期存储为毫秒。因此,总有一天不会有值(因为长线有一个最大值)将对应于该瞬间的时间。你知道什么时候会发生吗?
很容易找到:
public class Test {
public static void main(String[] args) {
System.out.println(new java.util.Date(Long.MAX_VALUE));
}
}
给出输出(在我的盒子上):
Sun Aug 17 07:12:55 GMT 292278994
您可能需要从中减去一点来应对您的时区溢出的长范围,但它会给出一个合理的棒球场:)Long.MAX_VALUE
根据现行的闰年规定,每年的平均天数将为
365 + 1/4 − 1/100 + 1/400 = 每年 365.2425 天
这意味着,平均而言,我们每年有31556952000毫秒。
long 值表示自 Epoch(1970 年 1 月 1 日)以来的毫秒数,Java long 表示的最大数字是 263 − 1,因此进行以下计算
1970 + (263 − 1) / 31556952000
显示此表示形式将在第 292278994 年溢出。
正如Jon Skeet所指出的那样,这可以通过以下方式得到证实:
-> System.out.println(new Date(Long.MAX_VALUE));
Sun Aug 17 08:12:55 CET 292278994