1、将 java.util.Date 转换为 java.sql.Date java.util.Date utilDate = new java.util.Date(); java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); 2、若要插入到数据库并且相应的字段为 Date 类型 可使用 PreparedStatement.setDate(int ,java.sql.Date)方法 其中的 java.sql.Date 可以用上面的方法得到 也可以用数据库提供 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('“+x+“','yyyymmddhh24miss') where .“ 这里的 x 为变量为类似 :20080522131223 3、如何将“yyyy-mm-dd“格式的字符串转换为 java.sql.Date 方法1 SimpleDateFormat bartDateFormat = new SimpleDateFormat(“yyyy-MM-dd“); String dateStringToParse = “2007-7-12“; try{ java.util.Date date = bartDateFormat.parse(dateStringToParse); java.sql.Date sqlDate = new java.sql.Date(date.getTime()); System.out.println(sqlDate.getTime()); } catch (Exception ex) { System.out.println(ex.getMessage()); } 方法2 String strDate = “2002-08-09“; StringTokenizer st = new StringTokenizer(strDate, “-“); java.sql.Date date=new java.sql.Date(Integer.parseInt(st.nextToken())); java.util.Date 和 java.sql.Date 的区别 java.sql.Date,java.sql.Time 和 java.sql.Timestamp 三个都是 java.util.Date 的子类(包装类) 。 但是为什么 java.sql.Date 类型的值插入到数据库中 Date 字段中会发生数据截取呢? java.sql.Date 是为了配合 SQL DATE 而设置的数据类型。 “规范化”的 java.sql.Date 只包含年 月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。当我们调用 ResultSet 的 getDate()方法来获得返回值时,java 程序会参照“规范“ 的 java.sql.Date 来格式化数据库中的 数值。因此,如果数据库中存在的非规范化部分的信息将会被劫取。 在 sun 提供的 ResultSet.java 中这样对 getDate 进行注释的: Retrieves the of the designated column in the current row of this ResultSet object as a “java.sql.Date” object in the Java programming language. 同理。如果我们把一个 java.sql.Date 值通过 PrepareStatement 的 setDate 方法存入数据库时, java 程序会对传入的 java.sql.Date 规范化,非规范化的部分将会被劫取。然而,我们 java.sql.Date 一般由 java.util.Date 转换过来,如:java.sql.Date sqlDate=new java.sql.Date(new java.util.Date().getTime()). 显然,这样转换过来的 java.sql.Date 往往不是一个规范的 java.sql.Date.要保存 java.util.Date 的精确值, 我们需要利用 java.sql.Timestamp. Calendar: Calendar calendar=Calendar.getInstance(); //获得当前时间,声明时间变量 int year=calendar.get(Calendar.YEAR); //得到年 int month=calendar.get(Calendar.MONTH); //得到月,但是,月份要加上 1 month=month+1; int date=calendar.get(Calendar.DATE); //获得日期 String today=““+year+“-“+month+“-“+date+““; 字符串转换成日期时间格式 //日期时间格式:yyyy-MM-dd hh:mm:ss String time =“1900-02-21 12:23:33“; //将字符串转换为日期和时间 SimpleDateFormat dateformat = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss“); //生成的日期和时间 Date date = dateformat .parse(time);
展开阅读全文