java.util.Date和java.sql.Date的区别和相互转化(转)

转自:https://blog.csdn.net/maoyuanming0806/article/details/78011700

共同点:都有getTime方法返回毫秒数,可以直接构建

不同点:

1、java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,一般在读写数据库的时候用
 PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.Date

2、java.util.Date是在除了SQL语句的情况下面使用,一般是日常日期字段

3、java.util.Date 是 java.sql.Date 的父类,
即:继承关系:java.lang.Object --》 java.util.Date --》 java.sql.Date

相互转化:

而java.util.Date 与 java.sql.Date的转换:
假若sqltime是java.sql.Date类型对象、utiltime是java.util.Date类型对象

java.util.Date 转 java.sql.Date:

这也就是下转型,需要造型,但是由于时间格式不一样,需要以毫秒的形式进行转换:

java.sql.Date s = new java.sql.Date(util.getTime());

java.sql.Date 转 java.util.Date:

这是上转型,会自动转换:

java.util.Date u = sqltime;

也如:

java.sql.Date s = new java.sql.Date(new Date().getTime());

java.util.Date u = s;
注意,new Date();是java.util.Date类型

其他

这里所有时间日期都可以被SimpleDateFormat格式化format()
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            f.format(stp);
            f.format(sTime);
            f.format(sqlDate);
            f.format(utilDate)
java.sql.Date sqlDate=java.sql.Date.valueOf(" 2005-12-12"搜索);
utilDate=new java.util.Date(sqlDate.getTime());

另类取得年月日的方法:
import java.text.SimpleDateFormat;
import java.util.*;
java.util.Date date = new java.util.Date();

如果希望得到YYYYMMDD的格式SimpleDateFormat
sy1 = new SimpleDateFormat("yyyyMMDD");
String dateFormat = sy1.format(date);

如果希望分开得到年,月,日SimpleDateFormat
sy = new SimpleDateFormat("yyyy");
SimpleDateFormat sm = new SimpleDateFormat("MM");
SimpleDateFormat sd = new SimpleDateFormat("dd");
String syear = sy.format(date);
String smon = sm.format(date);
String sday = sd.format(date);
posted @ 2019-12-30 18:09  谢霆飞  阅读(260)  评论(0编辑  收藏  举报