public String isTrueDate(String sDate){
String isTrueDate = "fasle";
try{
 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
 Date date1 = df.parse(df.format(new Date(System.currentTimeMillis())));  Date date2 = df.parse(sDate);
 System.out.println("date1:"+date1.getTime());
 System.out.println("date2:"+date2.getTime());
 if(date2.getTime()-date1.getTime()>0)isTrueDate="true";
}catch(Exception e){e.printStackTrace();}
return isTrueDate;
}
有时候会不管用,特别是当前输入时间和系统时间差几分是

解决方案 »

  1.   

    用这个吧public class Test
    {
        public static void main(String[] args)
         {
            System.out.println(Test.isTrueDate("2010-4-14 12:16"));
         }
        public static boolean isTrueDate(String inputDateStr){
            try{
                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
                Date currTime = df.parse(df.format(new Date(System.currentTimeMillis())));
                Date inputDate = df.parse(inputDateStr);
               
                if(inputDate.after(currTime)){  //before
                    return true;
                }
            }catch(Exception e){
                e.printStackTrace();
           }
           return false;
        }
      
    }
      

  2.   

    if(date2.getTime()-date1.getTime()>0)isTrueDate="true";
    当输入时间大于当前时间时才返回true?
    是逻辑判断错了还是我理解错了!