Java Calendar/Date DB/Rest 支持最小值

Java Calendar/Date Minvalue Supported on DB/Rest

我正在使用 Spring 引导和 HSQLDB 文件, 当我使用:

calendar.setTimeInMillis(-9223372036854775808L);
calendar.setTime(new Date(Long.MIN_VALUE));

并存储模型,

在我调用 rest 客户端后,我得到无效日期,当我检查它时,它 returns 一些正值而不是负值 :|我应该用什么作为 min_Value.

我认为可能是SQL问题,我将临时变量类型从时间跨度更改为日期,但没有再次工作,我不再确定这个问题的情况,以及我的问题应该使用,每个人都在谈论最小值,有人在谈论 -8 左右.......L 在 JS 中也有效,但在这里也不起作用:|

避免使用古老的日期时间值

不使用该最小值作为日期值的原因有很多。正如所评论的,标准 SQL 不允许这样古老的日期。据我所知,没有任何数据库实现支持该值。将日期时间用于历史值充满了问题和问题,而且是不明智的。

使用纪元作为标志值

如果您正在寻找一个任意值用作标志,例如 "no value intended",同时避免使用空值,那么我建议使用 Java 和 Unix epoch of first moment of 1970 in UTC。如果您知道您的系统永远不会将任何日期时间存储为有效值,那么这将很有效。 1970-01-01T00:00:00Z 很容易被许多程序员、DBA 和系统管理员识别为共同的纪元,因此可能是一个特殊值。

java.time

避免使用 DateCalendar 类。这些麻烦的 类 和他们的兄弟姐妹现在是遗产,被 java.time 类.

取代

这些 类 包括该纪元值的常量:Instant.EPOCH

类似问题:Minimum date in Java