util.date和sql.date之间的区别?

时间:2013-08-06 10:45:14

标签: java

很多人可以帮助我吗?

import java.util.Date;


public class DateDemo {

    public static void main(String [] p)
    {
        java.util.Date date1 = new Date();
        @SuppressWarnings("deprecation")
        java.sql.Date date2 = new java.sql.Date(2013, 12, 22);
        System.out.println(date1.compareTo(date2));
    }
}

2 个答案:

答案 0 :(得分:2)

  1. 根据Javadoc,java.sql.Date是一个围绕毫秒值的瘦包装器,JDBC使用它来标识SQL DATE类型。

  2. java.sql.Date只表示没有时间信息的DATE,而java.util.Date表示日期和时间信息。这是java.util.Date无法直接映射到java.sql.Date的主要区别。

  3. 为了抑制时间信息并确认ANSI SQL DATE类型的定义,必须通过将小时,分钟,秒和毫秒设置为零来“规范化java.sql.Date实例中使用的毫秒值”在与DATE实例关联的时区中。换句话说,所有与时间相关的信息都从java.sql.Date类中删除。

  4. 了解详情:http://javarevisited.blogspot.com/2012/04/difference-between-javautildate-and.html#ixzz2bBWDwBD0

答案 1 :(得分:0)

util包中的日期是日期和时间的组合,而SQL包中的Date仅表示Date部分。准确地说,日期包含年,月和日信息,而时间表示小时,分钟和秒信息。 java.util.Date包含所有年,月,日,小时,分钟和秒信息。实际上java.sql.Time和java.sql.TimeStamp表示SQL数据库的TIME和TIMESTAMP类型更接近java.util.Date,它扩展了java.util.DATE,如果你使用的是java.util.DATE你的Class代表DATE值,最好在Database中使用TIMESTAMP类型,在JDBC或DAO代码中使用java.sql.Time。

了解详情:http://javarevisited.blogspot.com/2012/04/difference-between-javautildate-and.html#ixzz2bBmF4lBd