java - System.currentTimeMillis() 什么时候会溢出?

标签 java time overflow year2038

我有一个网络应用程序,它使用一个很长的时间戳来订购东西。我的 web 应用后端恰好是用 java 编写的,所以我正在使用:

long timestamp = System.currentTimeMillis();

这会在哪一年(大约)失败?我的意思是,在某个时候,long 的范围会溢出,对吧?我们可能都早已死去,但我只是好奇。它会再次像 y2k 一样吗?我可以为此做些什么准备?可笑,我知道,只是好奇!

最佳答案

它会溢出

System.out.println(new Date(Long.MAX_VALUE));

打印出来的

Sun Aug 17 03:12:55 GMT-04:00 292278994

这是在 2.92 亿年之后。我想说,同时有 大量 时间来发明解决方案。老实说,我不指望人类能够幸存下来。与 age of the world 相比,我们只存在几秒钟。以小时为单位,不会花费很长时间。

enter image description here

关于java - System.currentTimeMillis() 什么时候会溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2978452/

相关文章:

c++ - boost::multiprecision::cpp_dec_float_50 溢出检查

java - 在文件中添加新元素

c++ - 测量 C++ 中的执行时间 : clock() and clock_gettime() give absolutely different results

java - 如何转义xml中的特殊字符而不转义java中的xml标签(<>)

java - 单线程中断 sleep

Python:有没有办法使用 timeit.timeit() 导入变量?

html - 为父级设置溢出时如何避免在行中间切割文本?

vba - Target.count 导致溢出错误

java - 在已部署的系统中使用 session.setAttribute

java - 将标准 mbean 转换为动态 mbean/代码生成