zoukankan      html  css  js  c++  java
  • 如何将util.Date转化为sql.Date

    通过查看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());//年  月 日  时  分   秒 毫秒

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

  • 相关阅读:
    我给老师发的邮件
    [LeetCode]Sum Root to Leaf Numbers
    [LeetCode]Binary Tree Inorder Traversal
    [LeetCode]Merge Sorted Array
    [LeetCode]Unique Paths II
    [LeetCode]Unique Paths
    [LeetCode]Sort Colors
    [LeetCode]Balanced Binary Tree
    [LeetCode]Valid Palindrome
    [LeetCode]Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/sunshine6/p/5947028.html
Copyright © 2011-2022 走看看