我无法理解java.sql.date的文档

我正在处理跨SQL,jdbc,JVM和linux的时区问题。

我可以看到我需要从/从jdbc获取的类是java.sql.date。 所以我读了文档,不能做任何事情。

据我所知,java.util.Data和java.sql.date都持有自纪元以来的毫秒数。

当我看到java.sql.date构造函数的定义时,它说

“使用给定的毫秒时间值构造一个Date对象,如果给定的毫秒值包含时间信息,则驱动程序会将时间组件设置为默认时区(运行应用程序的Java虚拟机的时区)中的时间对应于零GMT。“

好的 - 问题1 - “如果给定的毫秒数值包含时间信息”的含义是什么 - 显然它包含一些时间信息!

他们的意思是“如果你给例行公事的毫秒数不代表确切的日期边界,考虑到闰秒等等”?? 这听起来是一个相当随机的测试,以满足/失败!

或者他们的意思是“为了上天的缘故,我们会在接近中午的时候给我们一些东西,我们会把它截断到当天开始的时候?

问题2 - 用语言来说,这个奇怪的句子“FOR”是什么? 这显然是为了使某些齿轮正确啮合而采取的行为 - 但是它们是什么齿轮?


java.sql.Datejava.sql.Timejava.sql.Timestamp都会扩展java.util.Date ,但是:

  • java.sql.Date毫秒数舍入到了午夜 - 这是一个“零时间的日期”
  • java.sql.Time毫秒数小于24小时 - 这就像1970-01-01java.util.Date
  • java.sql.Timestamp具有完整的日期和时间 - 就像常规的java.util.Date

  • 如果我是你,我会避免使用毫秒构造函数。 相反,使用Date.valueOf


    java.sql.Date仅表示日期,没有任何时间信息。 应该使用java.sql.Time。

    链接地址: http://www.djcxy.com/p/18519.html

    上一篇: I'm unable to understand the documentation for java.sql.date

    下一篇: java.util.Date vs java.sql.Date