天天看点

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.parse(str);

java.util.Date 转化成 java.sql.Date

     String str = new SimpleDateFormat("yyyy-MM-dd").format(ud);

;

1、如何将java.util.Date转化为java.sql.Date?

转化:

java.sql.Date sd;

java.util.Date ud;

//initialize the ud such as ud = new ;

sd = new ;

2、如果要插入到数据库并且相应的字段为Date类型

那么可以用PreparedStatement.setDate(int ,方法

其中的java.sql.Date可以用上面的方法得到

 PreparedStatement pst;

  java.util.Date date=new ;

  pst.setDate(1, ;//这里的Date是sql中的::得到的是日期

  pst.setTime(2, //sql包中的Time::得到的是时间

  pst.setObject(3, ;//::得到的是日期及时间

也可以用数据库提供TO_DATE函数

比如 现有 ud

TO_DATE(new SimpleDateFormat().format(ud,"yyyy-MM-dd HH:mm:ss"),

"YYYY-MM-DD HH24:MI:SS")

注意java中表示格式和数据库提供的格式的不同

一个实际的例子

sql="update tablename set timer=to_date('"+t+"','yyyymmddhh24miss') where ....."

这里的t为变量为类似:20151010131623

3、如何将"yyyy-mm-dd"格式的字符串转换为java.sql.Date

方法1

SimpleDateFormat bartDateFormat =  

        new SimpleDateFormat("yyyy-MM-dd");  

       String dateStringToParse = "2017-7-12";  

       try {  

        java.util.Date date = bartDateFormat.parse(dateStringToParse);  

        java.sql.Date sqlDate = new ;

        System.out.println(sqlDate.getTime());  

       }  

       catch (Exception ex) {  

        System.out.println(ex.getMessage());  

       }

------------------------------------------------------------

方法2

       String     strDate     =     "2017-08-09";   

       StringTokenizer     st     =     new     StringTokenizer(strDate,     "-");   

       java.sql.Date     date     =     new     ,

                Integer.parseInt(st.nextToken()),

                 Integer.parseInt(st.nextToken()));

【已忘记从何处摘来,亲试完美,如有雷同莫怪!】