//***************************************************
    //名称:strToDate
    //功能:将指定的字符串转换成日期
    //输入:aStrValue: 要转换的字符串; 
    // aFmtDate: 转换日期的格式, 默认为:"yyyy/MM/dd"
    //      aDteRtn: 转换后的日期
    //输出:
    //返回:TRUE: 是正确的日期格式; FALSE: 是错误的日期格式
    //***************************************************
    public static boolean strToDate(
        String aStrValue,
        String aFmtDate,
        java.util.Date aDteRtn)
    {
        if (aFmtDate.length() == 0)
        {
            aFmtDate = "yyyy/MM/dd";
        }
        SimpleDateFormat fmtDate = new SimpleDateFormat(aFmtDate);
        try
        {
            aDteRtn.setTime(fmtDate.parse(aStrValue).getTime());
        }
        catch (Exception e)
        {
            return (false);
        }        return (true);
    }    //***************************************************
    //名称:dateToStr
    //功能:将指定的日期转换成字符串
    //输入:aDteValue: 要转换的日期; 
    // aFmtDate: 转换日期的格式, 默认为:"yyyy/MM/dd"
    //输出:
    //返回:转换之后的字符串
    //***************************************************
    public static String dateToStr(java.util.Date aDteValue, String aFmtDate)
    {
        String strRtn = null;        if (aFmtDate.length() == 0)
        {
            aFmtDate = "yyyy/MM/dd";
        }
        Format fmtDate = new SimpleDateFormat(aFmtDate);
        try
        {
            strRtn = fmtDate.format(aDteValue);
        }
        catch (Exception e)
        {        }        return (strRtn);
    }

解决方案 »

  1.   

    它是完全转换的,你用
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println(sdf.format(a));
    打印出来看看
      

  2.   

    SimpleDateFormat后还是 2004-11-23
      

  3.   

    import java.util.*;
    import java.text.SimpleDateFormat;
    class test
    {
    public static void main(String[] args) 
    {
    long nCurrentTime = System.currentTimeMillis();
    java.util.Date utilDate = new java.util.Date(nCurrentTime); GregorianCalendar da = new GregorianCalendar(2004, 11, 23, 11, 45, 50);
    java.util.Date time = da.getTime();
    java.sql.Date sqlDate = new java.sql.Date(time.getTime());
            java.sql.Time sqlTime = new java.sql.Time(time.getTime());
            java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(nCurrentTime);

    System.out.println(time);
    System.out.println("sqlDate:-----"+sqlDate);
    System.out.println("sqlTime:-----"+sqlTime);
    System.out.println("sqlTimestamp:-----"+sqlTimestamp);
    }
    }
      

  4.   

    数据库设置的格式问题!GregorianCalendar da = new GregorianCalendar(2004, 11, 23, 11, 45, 50);
    Date time = da.getTime();
    java.sql.Date a = new java.sql.Date(da.getTimeInMillis());
    System.out.println(time);
    System.out.println(a);//转换前的格式SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println(sdf.format(a));//转换后的格式
    //把数据插入数据库,如果还没有小时、分、秒
    //那么肯定是数据库字段格式设置问题