我是靠谱客的博主 香蕉白羊,最近开发中收集的这篇文章主要介绍Java Date and Time系列(四)- java.sql.Date/java.sql.Time/java.sql.Timestamp介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
java.sql.Date
java.sql.Date是在JDBC中使用的日期类,在JDBC操作中,如果需要设置一个日期或者从ResultSet获取日期值,就需要使用到java.sql.Date。实际上java.sql.Date继承自java.util.Date,是java.util.Date的一个子类,所以java.util.Date可以调用的方法在java.sql.Date中也可以调用。
创建一个java.sql.Date实例也像java.util.Date一样简单:
long time = System.currentTimeMillis();
java.sql.Date date = new java.sql.Date(time);
那么java.util.Date和java.sql.Date之间到底有什么区别呢?它们之间最大的区别就是:java.util.Date是一个日期和时间的完整表示,java.sql.Date只表示日期而不包含时间,比如java.util.Date实例可以表示2013-11-30 21:11:30.034,但java.sql.Date实例却只能表示2013-11-30。如果试图在java.util.Date实例上调用和时间相关的方法将会抛出一个java.lang.IllegalArgumentException异常:
long timeNow = System.currentTimeMillis();
java.sql.Date sDate = new java.sql.Date(timeNow);
sDate.getHours(); //抛出java.lang.IllegalArgumentException
java.sql.Time
java.sql.Time是JDBC中用来表示时间的类,它也是java.util.Date的子类,可以像下面一样创建一个Time实例:
long timeNow = System.currentTimeMillis();
java.sql.Time time = new java.sql.Time(timeNow);
和java.sql.Date的道理一样,这个类只能表示时间却不能包含日期部分,如果试图在java.sql.Time实例上调用和日期相关的方法
将会抛出一个java.lang.IllegalArgumentException异常:
long timeNow = System.currentTimeMillis();
java.sql.Time time = new java.sql.Time(timeNow);
time.getYear(); //抛出java.lang.IllegalArgumentException
所以,如果在JDBC中需要像java.util.Date一样能够完整表示日期和时间,那么应该考虑使用java.sql.Timestamp,而不是java.sql.Date或java.sql.Time。
java.sql.Timestamp
long time = System.currentTimeMillis();
java.sql.Timestamp timestamp = new java.sql.Timestamp(time);
timestamp.setNanos(123456);
int nanos = timestamp.getNanos(); // nanos = 123456
最后
以上就是香蕉白羊为你收集整理的Java Date and Time系列(四)- java.sql.Date/java.sql.Time/java.sql.Timestamp介绍的全部内容,希望文章能够帮你解决Java Date and Time系列(四)- java.sql.Date/java.sql.Time/java.sql.Timestamp介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复