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

养生道 2016-10-10 21:19

通过查看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         } 
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里面有一个为过期的方法:

longgetTime
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此

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

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

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);//年  月 日  时  分   秒 毫秒

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值