因为要调用个存储过程要传入一date型的数据,比如2007-07-15 12:12:23
查了半天也只找到把"2007-07-15"这个字符串转换成java.sql.date的办法
java.sql.Date.valueOf(dateStr);
或者先转换成java.util.date型,再用
java.sql.Date(date.getTime())
为什么两种方法就不能加上时间呢

解决方案 »

  1.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")
    Date date = sdf.parse("2007-07-15 12:12:23")
      

  2.   

    这是转换成java.util.data 的类了啊
    我要转换成 java.sql.data啊
      

  3.   

    在网上找到一方法
    public static java.sql.Date parseSqlDate(String dateStr, String format) {
    java.util.Date date = parseDate(dateStr, format);
    return parseSqlDate(date);
    }
    public static java.util.Date parseDate(String dateStr, String format) {
    java.util.Date date = null;
    try {
    java.text.DateFormat df = new java.text.SimpleDateFormat(format);
    String dt = Normal.parse(dateStr).replaceAll("-", "/");
    String dt = dateStr.replaceAll("-", "/");
    if ((!dt.equals("")) && (dt.length() < format.length())) {
    dt
    += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]","0");
    }
    date = (java.util.Date) df.parse(dt);
    } catch (Exception e) {
    }
    return date;
    }
    但是报错啊
    String dt = Normal.parse(dateStr).replaceAll("-", "/");
    这句报错谁知道
    String dt = Normal.parse(dateStr).replaceAll("-", "/");
    中的Normal是个什么东东不胜感激
      

  4.   

    方法错了
    public static java.sql.Date parseSqlDate(String dateStr, String format) {
    java.util.Date date = parseDate(dateStr, format);
    return parseSqlDate(date);
    }
    public static java.util.Date parseDate(String dateStr, String format) {
    java.util.Date date = null;
    try {
    java.text.DateFormat df = new java.text.SimpleDateFormat(format);
    String dt = Normal.parse(dateStr).replaceAll("-", "/");

    if ((!dt.equals("")) && (dt.length() < format.length())) {
    dt
    += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]","0");
    }
    date = (java.util.Date) df.parse(dt);
    } catch (Exception e) {
    }
    return date;
    }是这个
      

  5.   

    注意:java.sql.Date是java.util.Date的子类。
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
         try{
         Date date = sdf.parse("2007-07-15 12:12:23");
         java.sql.Date sqlDate=new java.sql.Date(date.getTime());
         String strDate=sdf.format(sqlDate);
         System.out.println(strDate);
         }catch(Exception e){
         e.printStackTrace();
         }
      

  6.   

    按照自由鸟的办法传入的还是一个只有年月日的东西啊,传不进时间啊
    存储过程的定义如下
    czd_save(in_id in number,in_tm in date)
    java中调用如下
    proc = conn.prepareCall("{ call czd_save(?,?)}");
    proc.setInt(1, Integer.parseInt(user.jdjh_lcbz)); 
    proc.setDate(2,sqlDate);
    proc.execute();  
    最后看插入表中的还是一个年月日的东西啊,时分进不去啊
      

  7.   

    我保存时间数据到数据库的时候都是把字段设置成vchar2类型的
    存进去什么样子取出来就什么样子
    比较方便
      

  8.   

    你select一下插入后的时间,把时分秒也select出来看看是什么。
      

  9.   

    使用Timestamp吧。oracle的Date不支持插入时分秒的Date,用Timestamp可以,试过了。-----------------1--
    public java.sql.Timestamp getSqlDate(String date){
    SimpleDateFormat s=new SimpleDateFormat("yyyyMMdd hh:mm:ss");
    try{
       Date dd=s.parse(date+" 03:33:33");
       java.sql.Timestamp sqlDate=new java.sql.Timestamp(dd.getTime());
       String d4=s.format(dd);
       System.out.println(d4);
       
       return sqlDate;
    }catch(Exception e){
    e.printStackTrace();
    }

    return null;
    }
    -----------------------------2---------
    ps.setTimestamp(1, this.getSqlDate(fr.getDate()));
      

  10.   

    有时候找资料可以baidu之后再问嘛。去baidu搜看看:
    java.sql.Date 时分秒
      

  11.   

    SimpleDateFormat dateFm = new SimpleDateFormat("MM/dd/yy");
    java.util.Date   date=null;  
    date=sdf.parse(strDate);
      

  12.   

    String str = "2007-07-15 12:12:23";
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    java.util.Date d = null;
    try
    {
        d = format.parse(str);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    if (d == null)
        return;
    java.sql.Date date = new java.sql.Date(d.getTime());
    if (date == null)
    {    
        return;
    }
    //这样就成功了。
    System.out.print(date.toLocaleString());//toString()得出的是日期,toLocaleString()得出的是日期和时间,不信你试一下。