【问题标题】:What is the max year that java.sql.Timestamp can handle?java.sql.Timestamp 可以处理的最大年份是多少?
【发布时间】:2016-01-20 05:18:21
【问题描述】:

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

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

Date maxDate = new Date(Long.MAX_VALUE);
...
Timestamp ts = new Timestamp(maxDate.getTime());

如果我是正确的maxDate.getTime(); 返回值Long.MAX_VALUE 所以没关系,我可以简单地写new Timestamp(Long.MAX_VALUE); 对吗?

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

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

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

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

提前致谢!

【问题讨论】:

  • ISO 标准的年份是从 1 到 9999。

标签: java sql oracle date timestamp


【解决方案1】:

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

When will the java date collapse?

java.sql.Timestamp 的最大年份值为 9999

由于我不断收到此错误,我很确定它是如何工作的:

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

猜你喜欢
  • 2019-09-03
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 2011-03-06
相关资源
最近更新 更多