若对应数据库数据是oracle的Date类型,即只需要年月日的,可以选择使用java.sql.Date类型,若对应的是MSsqlserver数据库的DateTime类型,即需要年月日时分秒的,选择java.sql.Timestamp类型
你可以使用dateFormat定义时间日期的格式,转一个字符串即可:
比如:设定字符串2002-03-22 15:22:32,调用如下方法:
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 = new SimpleDateFormat("yyyy.MM.dd", 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;
  }
}
即可得到Timestamp类型,若想得到Date类型的,将方法内的注释替换一下即可,当然进入的参数格式得为"2002-02-12"这种模式,btw:其中的"-"符号可以为“.”,只需将dataformat的格式也改变一下即可运行实例:
package Alpha;
import java.util.*;
import java.text.*;
public class Test {
  public static void main(String[] args) {
    try {
      String sToDate = "2002-3-4";//用于转换成java.sql.Date的字符串
      String sToTimestamp = "2002-9-12 14:21:22";//用于转换成java.sql.Timestamp的字符串
      java.sql.Date date1 = string2Date(sToDate);
      java.sql.Timestamp date2 = string2Time(sToTimestamp);      System.out.println(date1.toString());//结果显示
      System.out.println(date2.toString());//结果显示
    }
    catch(Exception e) {}  }  public final static java.sql.Timestamp string2Time(String dateString)
  throws java.lang.Exception {
    DateFormat dateFormat;
    dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);//设定格式
    //dateFormat = new SimpleDateFormat("yyyy-MM-dd", 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;
  }
    public final static java.sql.Date string2Date(String dateString)
  throws java.lang.Exception {
    DateFormat dateFormat;
    dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
    dateFormat.setLenient(false);
    java.util.Date timeDate = dateFormat.parse(dateString);//util类型
    java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
    return dateTime;
  }
}

解决方案 »

  1.   

    还有另一个问题:)怎样处理一个时间段,比如某人登陆了xx天xx小时xx分xx秒这个问题可以如下处理:
    首先你肯定可以从数据库中读取这个用户第一次登陆的具体时间:
    不妨为2002-01-01 12:00:00
    同样他到目前为止最后登陆的具体时间:
    不妨为2002-09-08 13:14:15
    若取得是数据本来就是时间类型的,则不用转化,若是String的则可以在转化后处理。
    你可以利用类似上面的例子,取得这两个时间对应的Timestamp值dateTime
    然后使用dateTime.getTime()方法得到这两个时间的long值,进行相减(大的减小的,即按时间后减先),得到一个long值,它是用毫秒milliseconds计算的,你将它换算一下就知道多少天多少小时多少分多少秒了
    比如首先除于(java中/除)一天的毫秒数,得到天,然后用余下的值除于一小时的毫秒数,得到小时……最后就可以得到所有的需求了