你可以写个类,用着这个类来转换字符串成时间类型:字符串必须是2003-12-2这种类型的 
/** 输入的字符转换为时间类型*/
  public java.sql.Date isTime(String shijian) {
    java.sql.Date time = null;
    try {
      time = java.sql.Date.valueOf(shijian);
      return time;
    }
    catch (IllegalArgumentException myException) {
      return time;
    }
  }

解决方案 »

  1.   

    更改成以下代码试试:
    <%
    String usertime=request.getParameter("T1");//(接收到的字符串为"2003-12-30")
    System.out.println(usertime);
    SimpleDateFormat sdf=new SimpleDateFormat(("yyyy-MM-dd"));
    Date dt = sdf.format(usertime);
    System.out.println(dt);
    %>
      

  2.   

    为什么要打印Date类型?用来显示的话String 不是更好?
    我们一般的做法是:
    Date类型用来做内部处理,然后用SimpleDateFormat转成需要显示格式的String用来显示.
    关于Date为什么显示成楼主所见的格式,请看看java.util.Date的toString()方法
      

  3.   

    你可以转换String到Date,但是打印Date类型当然就是这样。
    干嘛不直接打印String?
      

  4.   

    我自己用的一个类,贡献给你:package org.ilog.jsp;/**
     * <p>Title: Haley's Project</p>
     * <p>Description: Haley's Project</p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: ilog</p>
     * @author Haley
     * @version 1.0
     * @date 2003-09-25
     */import java.util.*;
    import java.text.*;public class formatDate {  public formatDate() {
      }  // 格式化日期为字符串 "yyyy-MM-dd hh:mm"
      public String formatDateTime(Date basicDate,String strFormat) {
        SimpleDateFormat df = new SimpleDateFormat(strFormat);
        return df.format(basicDate);
      }  // 格式化日期为字符串 "yyyy-MM-dd hh:mm"
      public String formatDateTime(String basicDate,String strFormat) {
        SimpleDateFormat df = new SimpleDateFormat(strFormat);
        Date tmpDate=null;
        try {
          tmpDate=df.parse(basicDate);
        }
        catch(Exception e) {
          // 日期型字符串格式错误
        }
        return df.format(tmpDate);
      }  // 当前日期加减n天后的日期,返回String (yyyy-mm-dd)
      public String nDaysAftertoday(int n) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Calendar rightNow = Calendar.getInstance();
        //rightNow.add(Calendar.DAY_OF_MONTH,-1);
        rightNow.add(Calendar.DAY_OF_MONTH,+n);
        return df.format(rightNow.getTime());
      }  // 当前日期加减n天后的日期,返回Date
      public Date nDaysAfterNowDate(int n) {
        Calendar rightNow = Calendar.getInstance();
        //rightNow.add(Calendar.DAY_OF_MONTH,-1);
        rightNow.add(Calendar.DAY_OF_MONTH,+n);
        return rightNow.getTime();
      }  // 给定一个日期型字符串,返回加减n天后的日期型字符串
      public String nDaysAfterOneDateString(String basicDate,int n) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date tmpDate = null;
        try {
          tmpDate = df.parse(basicDate);
        }
        catch(Exception e){
          // 日期型字符串格式错误
        }
        long nDay=(tmpDate.getTime()/(24*60*60*1000)+1+n)*(24*60*60*1000);
        tmpDate.setTime(nDay);    return df.format(tmpDate);
      }  // 给定一个日期,返回加减n天后的日期,返回Date
      public Date nDaysAfterOneDate(Date basicDate,int n) {
        long nDay=(basicDate.getTime()/(24*60*60*1000)+1+n)*(24*60*60*1000);
        basicDate.setTime(nDay);    return basicDate;
      }  // 当前日期加减n个月后的日期,返回String (yyyy-mm-dd)
      public String nMonthsAftertoday(int n) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Calendar rightNow = Calendar.getInstance();
        //rightNow.add(Calendar.DAY_OF_MONTH,-1);
        rightNow.add(Calendar.MONTH,+n);
        return df.format(rightNow.getTime());
      }  // 当前日期加减n个月后的日期,返回Date
      public Date nMonthsAfterNowDate(int n) {
        Calendar rightNow = Calendar.getInstance();
        //rightNow.add(Calendar.DAY_OF_MONTH,-1);
        rightNow.add(Calendar.MONTH,+n);
        return rightNow.getTime();
      }  // 当前日期加减n个月后的日期,返回Date
      public Date nMonthsAfterOneDate(Date basicDate,int n) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Calendar rightNow = Calendar.getInstance();
    rightNow.setTime(basicDate);
        rightNow.add(Calendar.MONTH,+n);
        return rightNow.getTime();
      }  // 当前日期加减n个月后的日期,返回String
      public String nMonthsAfterOneDateString(Date basicDate,int n) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Calendar rightNow = Calendar.getInstance();
    rightNow.setTime(basicDate);
        rightNow.add(Calendar.MONTH,+n);
        return df.format(rightNow.getTime());
      }  // 计算两个日期相隔的天数
      public int nDaysBetweenTwoDate(Date firstDate,Date secondDate) {
        int nDay=(int)((secondDate.getTime()-firstDate.getTime())/(24*60*60*1000));
        return nDay;
      }  // 计算两个日期相隔的天数
      public int nDaysBetweenTwoDate(String firstString,String secondString) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date firstDate=null;
        Date secondDate=null;
        try {
          firstDate = df.parse(firstString);
          secondDate=df.parse(secondString);
        }
        catch(Exception e) {
          // 日期型字符串格式错误
        }    int nDay=(int)((secondDate.getTime()-firstDate.getTime())/(24*60*60*1000));
        return nDay;
      }}
      

  5.   

    因为我要将日期变量进行SQL语句查询条件的控制,数据库中的time字段是日期型的
      

  6.   

    数据库操作的话可以用PreparedStatement 的 setDate() 或者 setTimestamp()
      

  7.   

    假设dt变量为日期型的,其值为2003-12-30,我想在库里查找所有time时间大于dt的所有记录,这样写SQL语句可以吗?
    select * from members where time >'dt'急急急,一定给加分的
      

  8.   

    "select * from members where time >'"+dt+"'"
      

  9.   

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    "select * from members where time >'"+df.format(dt)+"'"
      

  10.   

    dt为Date.然后直接 >dt 即可
      

  11.   

    Sql Server会自动识别它的类型的
      

  12.   

    思思,你的方法服务器会报错的,因为dt不是库中具体的字段啊haley,我的数据库不是sql server,是mysql,好了,我大体知道该怎么做了,谢谢你,想和你做个朋友啊:)谢谢大家!!!!!!!!!!!!!!
      

  13.   

    haley,你有QQ吗
    我可以加你吗
    我的是284648580
      

  14.   

    我的QQ:5239514
    不过,我更喜欢用MSN:[email protected]
      

  15.   

    最稳的方法,用preparestatement吧,把dt塞到parameter里去。
      

  16.   

    preparestatement是什么?可以细说下吗?
      

  17.   

    .......................................
    String sql="select * from members where time>?";
    PreparedStatement ps = mConn.prepareStatement(sql);
    ps.setDate(1,dt);
    ResultSet rs=ps.executeQuery();/****变量dt 需要是java.sql.Date类的实例*****/