2011-05-09 69 views
1
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 
import java.util.TimeZone; 

public class Test { 

    public static void main(String[] args) throws ParseException { 

     Calendar dateFromNet = strToCal("11-MAR-2004", "dd-MMM-yyyy"); 
     Calendar IEndTime = strToCal("20-05-2004", "dd-mm-yyyy"); 

     if (dateFromNet.after(IEndTime)) { 

      System.out.println(dateFromNet); 
      System.out.println(IEndTime); 

      System.out.println("not true: 11-MAR-2004(11-3-2004) > 20-05-2004 "); 
     } 


    } 

    private static Calendar strToCal(String date, String format) throws ParseException { 
     SimpleDateFormat input = new SimpleDateFormat(format); 
     input.setTimeZone(TimeZone.getTimeZone("GMT")); 

     Date d = (Date) input.parse(date); 
     Calendar c = Calendar.getInstance(); 
     c.setTime(d); 
     return c; 
    } 
} 

該測試顯示相關日曆日期GMT調試簡單的Java代碼

dateFromNet.after(IEndTime) == true 

即2004年11月3日是後20-05-2004

我做了什麼錯?

回答

2
Calendar IEndTime = strToCal("20-05-2004", "dd-mm-yyyy"); 

毫米爲毫秒;使這些國會大廈M,像這樣:

Calendar IEndTime = strToCal("20-05-2004", "dd-MM-yyyy");