java.sql.Timestamp 可以处理的最大年份是多少?

Tam*_* G. 4 java sql oracle timestamp date

我正在尝试使用以下内容在我的程序中创建最大日期:

import java.util.Date;
import java.sql.Timestamp;

Date maxDate = new Date(Long.MAX_VALUE);
...
Timestamp ts = new Timestamp(maxDate.getTime());
Run Code Online (Sandbox Code Playgroud)

如果我是正确的maxDate.getTime();返回值,Long.MAX_VALUE所以它并不重要,我可以简单地写new Timestamp(Long.MAX_VALUE);我对吗?

我的问题是我的程序此时给出了以下异常:

java.sql.SQLException: 年份超出范围。

那么可以传递给 Timestamp 的最大 long 值是多少?或者还有什么我在这里想念的吗?

如果重要的话,我正在使用 Oracle 数据库。

提前致谢!

小智 5

最多java.util.Date可以处理的年份是 292278994

java日期什么时候会崩溃?

而最大年份值为java.sql.Timestamp9999

由于这个错误,我很确定它是如何工作的:

ORA-01841: (full) year must be between -4713 and +9999, and not be 0