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