我没有看你的代码,但是这样的代码是很简单的
String str = "20140806";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
long lon = sdf.parse(str).getTime();
System.out.println(lon);
Date d = new Date(1407254400000L);
System.out.println(d);

解决方案 »

  1.   

    原因很简单,你前2行就错了YYYY得改成yyyy
      

  2.   

    private final static String DAY_PATTERN = "yyyy-MM-dd";
    private final static String SEC_PATTERN = "yyyy-MM-dd HH:mm:ss";
    public static long textToDate( String str ){
        if( null==str || "".equals( str.trim() ) ){
            return -1;
        }
        SimpleDateFormat sdf = null;
        int ps = str.length();
        if( ps==DAY_PATTERN.length() ){
            sdf = new SimpleDateFormat( DAY_PATTERN  );
        }else if( ps == SEC_PATTERN.length() ){
            sdf = new SimpleDateFormat( SEC_PATTERN  );
        }else{
            return -1;
        }
            try
            {
                return sdf.parse( str ).getTime();
            }
            catch (ParseException e)
            {
                e.printStackTrace();
            }
            return -1;
    }