2038年Bug已经遍布网络,但这似乎是一个unix问题。这将如何影响java Date?
答案 0 :(得分:29)
是什么让你觉得它有用? Java的Date
类存储64位long
(不是32位,与Y2K38一样)。它还存储毫秒,这会缩小范围,但只会略微(相当于~10位)。
在Java中,我们有292278994年的错误。
答案 1 :(得分:4)
我认为它不会像程序员那样影响Java Date类。它已经使用了64位值。如果您使用仍使用32位值的数据存储,我可以看到它是一个问题。我不希望在27年内看到太多的32位操作系统。
答案 2 :(得分:1)
Java和时间不仅限于Date类。
日期/时间通常来自哪里?通常来自System.currentTimeMillis,它是本机方法。它通常不是用Java实现的。返回类型很长,但这意味着很少,因为本机方法可以返回任何只适合long的值。
这一切都取决于操作系统及其JRE的实现。
依赖于64位系统的存在可能是天真的,因为显然有许多嵌入式系统是32位的,并将继续存在。
一般来说,Java暴露于2038问题。
答案 3 :(得分:0)
这可能是2038年日期数据类型滚动的旧C日的遗留问题。对于一些非常旧应用程序可能会出现问题,但对于Java则不然。打哈欠。
答案 4 :(得分:0)
这不是一个真正的答案。但有些帖子已经做对了。 Java符合2038标准,但不符合10000标准(如果你在Date构造函数中添加一个很长的代表9999之后的东西,它将无法工作并返回一些奇怪的数字),但是,2147483648肯定不是Java日期中允许的最大值类。