你取得的 birthday 是 "",不能正确解析为日期。
你最好在保证 birthday 取得的数据正确的情况下再猜测是不是其它问题。而且,我看你的这个程序,本意应该是用 myFormatterY  来格式化或者解析的,为什么要用 fmt 呢?或者你只用 fmt,不用 myFormatterY。反正我觉得你这两个好像有一个是多余的。

解决方案 »

  1.   

    我说得,首先得保证你的 birthday 取出来的东西是正确的,像例中的情况,取出来是"",空字符串,能转换成什么日期呢?如果
    birthday = "2004-11-23 08:23:14";
    SimpleDateFormat myFormatterY = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date d = myFormatterY.parse(birthday) 就可以取得一个正确的日期。
    如果你不希望有 Exception 出现,你最好用 try {}把这段话包起来,catch 到异常就跳转到错误页面或者其它处理,如
    birthday = "2004-11-23 08:23:14";
    SimpleDateFormat myFormatterY = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date d;
    try {
        d = myFormatterY.parse(birthday);
    } catch (DateFormatException e) {
        d = new Date();   // 如果解析出错,给当前日期,这里根据你的实际情况来改
    }
      

  2.   

    边城狂人:你可能没有注意到我后来把这个日期转化成了Timestamp型的了,是为了写入数据库中。
    数据库中这个字段是datetime型的。现在做update操作时抛出了异常,异常是:
    java.sql.SQLException 第一行'00' 附近有语法错误。
    能继续指点吗?谢谢!