后台取到的值为String类型,数据库里是Date类型,怎么把String转换Date呢

怎么把一个String类型的时间:比如2010-03-26 00:03:18 转换成
Date类型的时间,格式不变,依然是2010-03-26 00:03:18这样的格式。用SimpleDateFormat("yyyy-MM-dd HH:MM:ss"); 转换成的效果为 Fri Mar 26 00:20:18 CST 2010
,求解!

SimpleDateFormat 是可以设置格式的,例如: SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

 import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期相关工具类
 * 
 * @author 
 *
 */
public class DateTools {

    /**
     * 根据日期及格式format获取日期字符串
     * 
     * @param date
     * @param format
     * @return
     */
    public static String getDateString(Date date,String format){
        SimpleDateFormat yfm = new SimpleDateFormat(format);
        String year="";
        year=yfm.format(date);
        return year;
    }

    /**
     * 根据日期字符串及格式format获取日期
     * 
     * @param dateString
     * @param format
     * @return
     */
    public static Date getDate(String dateString,String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        Date date=null;
        try {
            date = sdf.parse(dateString);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return date;
    }

    /**
     * 编辑日期的年份
     * 
     * @param date
     * @param num
     * @return
     */
    public static Date editYear(Date date,int num){
        Calendar dt = Calendar.getInstance();
        dt.setTime(date);
        dt.add(Calendar.YEAR, num);
        return dt.getTime();
    }

    /**
     * 编辑日期的月份
     * 
     * @param date
     * @param num
     * @return
     */
    public static Date editMonth(Date date,int num){
        Calendar dt = Calendar.getInstance();
        dt.setTime(date);
        dt.add(Calendar.MONTH, num);
        return dt.getTime();
    }

    /**
     * 编辑日期的日
     * 
     * @param date
     * @param num
     * @return
     */
    public static Date editDay(Date date, int num) {
        Calendar dt = Calendar.getInstance();
        dt.setTime(date);
        dt.add(Calendar.DAY_OF_MONTH, num);
        return dt.getTime();
    }

    /**
     * 编辑日期的时
     * 
     * @param date
     * @param num
     * @return
     */
    public static Date editHour(Date date, int num) {
        Calendar dt = Calendar.getInstance();
        dt.setTime(date);
        dt.add(Calendar.HOUR, num);
        return dt.getTime();
    }

    /**
     * 编辑日期的秒
     * 
     * @param date
     * @param num
     * @return
     */
    public static Date editSecond(Date date, int num) {
        Calendar dt = Calendar.getInstance();
        dt.setTime(date);
        dt.add(Calendar.SECOND, num);
        return dt.getTime();
    }
}
  public java.util.Date stringToDatetime(String myDateStr) {
    myDateStr = formatDateString(myDateStr);
    if (myDateStr.length() < 19) {
//      return null;
      myDateStr = myDateStr.substring(0, 10) + " 00:00:00";
    }
    myDateStr = myDateStr.substring(0, 19);
    String sFormat = "yyyy-MM-dd HH:mm:ss";
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(sFormat);
    java.util.Date d = null;
    try {
      d = sdf.parse(myDateStr);
    } catch (java.text.ParseException pe) {
      log.error("Parse date from string error!", pe);
    }
    return d;
  }

直接把"2010-03-26 00:03:18"作为参数传到sql中,是可以在数据库中运行的

你直接打印那个转换后的date就是那样的,你的转换没有问题,你的分钟发错了吧

    /**
     * <b>说明: </b>日期转换
     * @param strDate
     * @param strFormat
     * @return
     */
    public static Date parseDate(String strDate,String strFormat){
            return DateUtils.parseDateStrictly(strDate, "yyyyMMdd");
     /**
     * <b>说明: </b>日期转换
     * @param strDate
     * @param strFormat
     * @return
     */
    public static Date parseDate(String strDate ){
            return DateUtils.parseDateStrictly(strDate, "yyyyMMdd");
                        }