本问题已经有最佳答案,请猛点这里访问。
能帮我一个忙吗?
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));
}
}
我想找出实际的日期差异
"日期差异"是什么意思? 您实际上是否需要java.sql.Date? (如果可能,我建议您使用Joda时间,其LocalDate类型表示没有时间的日期...)
有什么问题?
这个线程是一个开始
我认为答案在这里:stackoverflow.com/questions/2305973/
根据Javadoc,java.sql.Date是毫秒值的精简包装,JDBC使用它来标识SQL DATE类型。
java.sql.Date仅表示不带时间信息的DATE,而java.util.Date则表示日期和时间信息。这是java.util.Date无法直接映射到java.sql.Date的主要区别。
为了抑制时间信息并通过ANSI SQL DATE类型的定义进行确认,必须通过使用DATE在时区中将小时,分钟,秒和毫秒设置为零来规范java.sql.Date实例中使用的毫秒值。实例是关联的,换言之,所有与时间相关的信息都将从java.sql.Date类中删除。
了解更多:http://javarevisited.blogspot.com/2012/04/difference-between-javautildate-and.html#ixzz2bBWDwBD0
util包中的Date是日期和时间的组合,而SQL包中的Date仅代表Date部分。确切地说,"日期"包含年,月和日的信息,而"时间"则指小时,分钟和秒的信息。 java.util.Date包含所有的年,月,日,时,分和秒信息。实际上,代表SQL数据库的TIME和TIMESTAMP类型的java.sql.Time和java.sql.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