1,dateformat来做,try{}catch(Exception e){}
   捕获到异常就表示错误。
2, 在SQL 里面用sql日期转换函数。
   Strin sql ="insert into mytable (id, date) values (?,CONVERT(varchar, ?, 120 ))";

解决方案 »

  1.   

    对于1,除了上述方法之后,validator和一些其它开源项目也可以实现,或者你自己可以用正则表达式自己编写灵活的验证策略。
    对于写入sql,如果你是用2005-1-1这种格式的话,没必要用convert,直接放在单引号中送入sqlserver即可。
    insert into table1(datetime1) values('2005-1-1')
      

  2.   

    1:用正则表达式解决
    java.util.regex.Pattern
    //表示4位数字开头对应年份,1或2为数字对应月份,1或2位数字对应日期
    String regex = "\\d{4}-\\d{1,2}-\\d{1,2}";
    String text = "2005-1-2";
    boolean ok = Pattern.matches(regex,text);//ok即为检查结果。
    2:用数据库自身的函数完成
    sql server: 
    String sql = "insert into tableA (createDate)values(convert(datetime,'"+text+"'))";
    statement.executeUpdate(sql);
    oracle server:
    String sql = "insert into tableA (createDate)values(to_date('"+text+"','yyyy-mm-dd'))";
    statement.executeUpdate(sql);