为什么有两个日期类,一个是java.util.date,另一个是java.sql.date?

为什么有两个日期类,一个是java.util.date,另一个是java.sql.date?,java,Java,嗨 我想知道为什么在两个不同的包中有两个日期类,一个在java.util.Date中,另一个在java.sql.Date中? 有两个日期类有什么用?java.util.Date是java的日期数据类型 java.sql.Date是sql日期的JDBC包装器 两者在内部的表现完全不同 .NET与System.DataTime和System.Data.SqlTypes.SqlDateTime 围绕毫秒值的薄型包装器,允许JDBC将其标识为SQL日期值。毫秒值表示自1970年1月1日00:00:00.

嗨 我想知道为什么在两个不同的包中有两个日期类,一个在
java.util.Date
中,另一个在
java.sql.Date
中?
有两个日期类有什么用?

java.util.Date
是java的日期数据类型

java.sql.Date
是sql日期的JDBC包装器

两者在内部的表现完全不同

.NET与
System.DataTime
System.Data.SqlTypes.SqlDateTime

围绕毫秒值的薄型包装器,允许JDBC将其标识为SQL日期值。毫秒值表示自1970年1月1日00:00:00.000 GMT以来经过的毫秒数


java.sql.Date
java.util.Date
的子类(扩展) java.sql.Date中发生了什么变化

  • toString()
    生成不同的字符串表示形式:
    yyyy-mm-dd
  • 静态
    valueOf(String)
    方法从具有上述表示形式的字符串创建日期
  • 不推荐使用小时、分钟和秒的getter和setter

  • java.sql.Date
    类与JDBC一起使用,它没有时间部分,即小时、分钟、秒和毫秒应为零。。。但这并不是由类强制执行的。

    有时我认为这会让程序员的生活变得艰难,然后还有JODA……但是你跳过了
    java.util.Calendar
    !具有讽刺意味的是,这些(JDK类)中没有一个是您真正应该使用的(除非强制)。Joda Time是唯一正确完成的日期/时间API。