【问题标题】:Dates from HSQL Database returns negative values in fastTime fieldHSQL 数据库中的日期在 fastTime 字段中返回负值
【发布时间】:2013-03-06 17:06:04
【问题描述】:

我从我的 HSQL 数据库中提取日期,它们显示正确,但在内部它们似乎是错误的。大多数日期都是默认值,其值为 1970-01-01。在调试时,我可以看到一个名为“fastTime”的字段,它说它是 -3.600.000,正好是它应该是前一分钟......

当我现在将这些日期与一些 fastTime 为 0 的生成值混合在一起时,比较错误并且选择了错误的日期。

这非常烦人,因为现在仅在从 DB 中提取值时添加该值即可,但切换到另一个 DBMS 将需要还原此更改。

所以..这只是一个错误还是发生了什么?

【问题讨论】:

    标签: java date jdbc hsqldb


    【解决方案1】:

    如果日期显示正确,那么它们对于您的时区是正确的。

    如果 fastTime 指示您报告的值,则表示您的时区是 GMT+1 小时。如果 fastTime 为 0,则日期将表示 GMT 的午夜,而不是您的时区。

    当您在 Java 中对属于不同区域的日期进行比较时,您需要考虑时区。为此,您可以使用 Java 日历对象。

    【讨论】:

    • 虽然这是一个很好的提示 - 为什么它只是一分钟的偏移量?如果是一个小时,它会适合你的答案,但不是一分钟,这对我来说似乎是错误的。
    • 3600000 毫秒是一小时,而不是一分钟
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2012-02-02
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多