java中java.util.Date和java.sql.Date之间的转换
1、util.Date和sql.Date之间的关系
我们来看下java.sql.Date的源码
package java.sql;
import java.time.Instant;
import java.time.LocalDate;
public class Date extends java.util.Date {}
从以上源码可以看出,sql.Date是util.Date的子类
2、util.Date的构造方法
以下是java.util.Date的方法部分方法图示:
可以看到,主要有两个构造方法推荐使用,添加了标记的表示这些方法已经被废弃,不推荐使用。
所以对于,java.util.Date 常用的构造方法有:
Date()
Date(long) 方法参数为一个长整型的毫秒值
其中,java.util.Date中还有一个重要的方法:就是获取当前时间的毫秒值
public class Date
implements java.io.Serializable, Cloneable, Comparable<Date>
{
/**
* Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
* represented by this <tt>Date</tt> object.
*
* @return the number of milliseconds since January 1, 1970, 00:00:00 GMT
* represented by this date.
*/
public long getTime() {
return getTimeImpl();
}
}
从以上源码可以看到,该方法是public的,所以,它的子类sql.Date也是可以继承该方法的。
3、sql.Date的构造方法
以下是java.sql.Date的方法部分方法图示:
可以看到,sql.Date主要有一个构造方法:Date(long)
4、util.Date和sql.Date之间的转换
// 1) 创建java.util.Date的对象
java.util.Date utilDate?= new java.util.Date();
// 2)将java.util.Date转成java.sql.Date
long datems? = utilDate.getTime();
java.sql.Date? sqlDate = new java.sql.Date(datems);
// 3)将 java.sql.Date 转成 java.util.Date
long datems2 = sqlDate.getTime();
java.util.Date? utilDate = new java.util.Date(datems2);
看下面只要是为了看一下运行效果
原文链接:https://blog.csdn.net/engerla/article/details/81298645 感谢!!!
Java中有两个Date类,一个是java.util.Date通常情况下用它获取当前时间或构造时间,另一个是java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分。两个类型的时间可以相互转化。
util.Date转sql.Date
代码:
Date utilDate = new Date();//util.Date
System.out.println("utilDate : " + utilDate);
//util.Date转sql.Date
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("sqlDate : " + sqlDate);12345
运行结果:
从运行结果看到util.date转成sql.date之后,只有年月日,没有时分秒。下面给大家看点东西就知道为什么会这样了
java.sql包下给出三个与数据库相关的日期时间类型:
Date:表示日期,只有年月日,没有时分秒。会丢失时间;
Time:表示时间,只有时分秒,没有年月日。会丢失日期;
Timestamp:表示时间戳,有年月日时分秒,以及毫秒。
代码
Date utilDate = new Date();//util utilDate
System.out.println("utilDate : " + utilDate);
Timestamp sqlDate = new Timestamp(utilDate.getTime());//uilt date转sql date
System.out.println("sqlDate : " + sqlDate);1234
运行结果:
这样就有时分秒了
sql.Date转util.Date
触类旁通,就直接上代码了
代码
System.out.println("*********util.Date转sql.Date*********");
Date utilDate = new Date();//util.Date
System.out.println("utilDate : " + utilDate);
Timestamp sqlDate = new Timestamp(utilDate.getTime());//util.Date转sql.Date
System.out.println("sqlDate : " + sqlDate);
System.out.println("*********sql.Date转util.Date*********");
System.out.println("sqlDate : " + sqlDate);
Date date = new Date(sqlDate.getTime());//sql.Date转util.Date
/*
java.util.Date date = new java.util.Date(sqlDate.getTime());
*/
System.out.println("utilDate : " + date);12345678910111213
运行结果:
同时util.Date和sql.Date都可以用SimpleDateFormat格式化
代码
Date utilDate = new Date();//uilt.Date
System.out.println("utilDate : " + utilDate);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("format : " + format.format(utilDate));
System.out.println("**********************************************");
Timestamp sqlDate = new Timestamp(utilDate.getTime());//uilt.Date转sql.Date
System.out.println("sqlDate : " + sqlDate);
System.out.println("format : " + format.format(sqlDate));
运行结果: