java日期什么时候会崩溃?

时间:2010-11-16 14:15:42

标签: java datetime

AFAIK java将日期存储在长变量中,以毫秒为单位。因此有一天将没有价值(因为长期有一个最大值),这将对应于该瞬间的时间。你知道什么时候会发生吗?

2 个答案:

答案 0 :(得分:55)

很容易找到:

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中减去一点以应对超出长范围的时区,但它会给出一个合理的球场:)

答案 1 :(得分:26)

根据目前的leap-year规定,每年的平均天数为

365 + 1/4 - 1/100 + 1/400 =每年365.2425天

这意味着我们平均每年有31556952000毫秒。

long值表示自Epoch(1970年1月1日)以来的毫秒数,Java long表示的最大数量为2 63 - 1,因此以下计算

1970 +(2 63 - 1)/ 31556952000

显示此表示将溢出292278994年。


这可以由Jon Skeet points out确认,

-> System.out.println(new Date(Long.MAX_VALUE));
Sun Aug 17 08:12:55 CET 292278994
相关问题