如何将util.Date转化为sql.Date

简介: 通过查看API可以很容易知道,util.Date类时sql.Date的父类,所以根据向上转型的原理可以很简单的知道时可行的,不用做转换都可以。但是如果想要将util.Date转化为sql.Date,是不存在向下直接转型的! 1 String str="2010-10-10"; 2 ...

通过查看API可以很容易知道,util.Date类时sql.Date的父类,所以根据向上转型的原理可以很简单的知道时可行的,不用做转换都可以。

但是如果想要将util.Date转化为sql.Date,是不存在向下直接转型的!

 1 String str="2010-10-10";
 2         Date date1=null;
 3         try {
 4             date1 = new SimpleDateFormat("yyyy-MM-dd").parse(str);
 5         } catch (ParseException e) {
 6             e.printStackTrace();
 7         }
 8 
 9 //这是我定义的一个在dbutil对象里的update方法用于向数据库中插入数据
10 dbutil.update("张三",date1);

以上代码提示以下错误:

The method update(java.lang.String, java.sql.Date) in the type DBUtil is not applicable for the arguments (java.lang.String, java.util.Date)

我们认真看API文档会发现:

sql.Date里面有个构造方法:

Date(long date)      使用给定毫秒时间值构造一个 Date 对象。

恰巧的是强大的JAVA,在util.Date里面有一个为过期的方法:

long getTime()
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

 就提供给这构造函数使用的。

所以可以将上面的代码改正为:

1         String str="2010-10-10";
2         Date date1=null;
3         try {
4             date1 = new SimpleDateFormat("yyyy-MM-dd").parse(str);
5         } catch (ParseException e) {
6             e.printStackTrace();
7         }
8         java.sql.Date hiredate=new java.sql.Date(date1.getTime());
9         dbutil.update("张三",hiredate);    

这样就可以正确的转化。

除此之外,还可以:

1         java.sql.Time date1=new java.sql.Time(new java.util.Date().getTime());//时   分    秒
2         java.sql.Timestamp date2=new java.sql.Timestamp(new java.util.Date().getTime());//年  月 日  时  分   秒 毫秒

以上在学习的时候的小总结,若有错误或不足,请大家多多指正。

目录
相关文章
|
4月前
|
Java 数据库
使用java.sql.Timestamp处理时间戳
使用java.sql.Timestamp处理时间戳
|
5月前
|
SQL 存储 关系型数据库
SQL Date 函数
SQL Date 函数
57 3
|
6月前
|
SQL HIVE
Hive中日期处理函数的使用(date_format、date_add、date_sub、next_day)
Hive中日期处理函数的使用(date_format、date_add、date_sub、next_day)
1364 3
SQL中对 datetime 类型操作
datetime 是SQL中 表示时间的类型
SQL中对 datetime 类型操作
|
SQL 存储 Java
【JAVA】【JDBC】jdbcTemplate.batchUp(),util的Date类和sql的Date类,存在赋值问题。可通过Timestamp转化解决~
【JAVA】【JDBC】jdbcTemplate.batchUp(),util的Date类和sql的Date类,存在赋值问题。可通过Timestamp转化解决~
325 1
|
数据库
数据库中的date转实体类中的java.util.Date
数据库中的date转实体类中的java.util.Date
233 0
|
Java 关系型数据库 MySQL
java.util.Date cannot be cast to java.sql.Date 一行代码解决
mysql与java交互时如果遇到Date类型的数据想从数据库读出、或者从java程序写入数据库时,应该做一个转换
java.util.Date cannot be cast to java.sql.Date 一行代码解决
|
Java 关系型数据库 MySQL
java.util.Date转化为java.sql.Date出现时间错误
java.util.Date转化为java.sql.Date出现时间错误
202 0
java.util.Date转化为java.sql.Date出现时间错误
|
SQL Java 数据库连接
util包下的Date与sql包下的时间类型之间的转换|学习笔记
快速学习util包下的Date与sql包下的时间类型之间的转换
|
SQL Java 数据库
JAVA中Sql时间格式与util时间格式转换
关于时间格式转化: java.util.Date 与 java.sql.Date 互换 sql是子类 字符串转化成java.util.Date     SimpleDateFormat date =new SimpleDateFormat("yyyy-MM-dd"); String str="1992-5-6"; Date ud=date.
993 0