针对数据库处理而言,util.Date数据库并不支持,必须用sql.Date,但你的问题中这个也不行。因为sql.Date只有年月日,时分秒则是用sql.Time存放。直接将"2002-5-22 22:22:22"之类String 转换成 sq.Date类型会丢失时分秒的信息。所以如果时间要精确到时分秒数据的话,不要用sql.Date,用java.sql.Timestamp,它类似sql.Date,但多了时分秒。给你个转换class如下:调用时注意要用try……catch捕捉异常。
public class StringToDate {
  public final static java.sql.Timestamp string2Date(String dateString)
  throws java.lang.Exception {
    DateFormat dateFormat;
    dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
    dateFormat.setLenient(false);
    java.util.Date timeDate = dateFormat.parse(dateString);//util类型
    //java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型,不含时分秒
    java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型
    return dateTime;
  }
}

解决方案 »

  1.   

    如果要返回小时以下的时间的话,要用Timestamp。
    咖啡兄的方法是对的。
      

  2.   

    String str = "2002-2-6 12:22:11";
    SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd");
    java.util.Date ud = formatter.parse(str);
    java.sql.Date birthDay = new java.sql.Date(ud.getTime());
      

  3.   

    为何不用java.text.DateFormat,很好用的,可以转化时间和日期等。DateFormat.getDateInstance().parse("xxx")就可以了,这是java推荐写法。
      

  4.   

    String           sdate     = "";
    java.util.Date   date     = null;
    PreparedStatement pstmt = null;
    java.text.SimpleDateFormat format   = new java.text.SimpleDateFormat("yyyy-MM-dd");
    sdate=request.getParameter("OutDate");
    date=format.parse(sdate);
    time = new Timestamp(date.getTime());
    pstmt.setTimestamp(1, time);}
      

  5.   

    String date = Mon, 4 Feb 2002 23:4:31 +0800 ;字符串 date 如何转变为  java.util.date 型 数据?