私のアプリケーションでは、以下の形式で指定された2つの異なる日付を比較する必要があります。
入力:文字列形式の入力日付は2つあります。
String actual="11/12/2012 11:26:04 AM";
String expected="21/12/2012 09:49:12 AM";
比較のために以下のJavaコードを使用しようとしています。
SimpleDateFormat format= new SimpleDateFormat("dd/MM/YYYY hh:mm:ss a");
Date date1 = format.parse(actual);
System.out.println("Formated date1 is: "+format.format(date1).toString());
// prints : 01/01/2012 11:26:04 AM Why????
Date date2= format.parse(expected);
System.out.println("Formated date2 is: "+format.format(date2).toString());
// prints : 01/01/2012 09:49:12 AM Why????
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
if( !(cal1.compareTo(cal2)<=0))
{
result=false;
String errMsg +="Actual:"+actual+" date is not before or equal to expected:"+expected+" date\n";
System.out.println(errMsg);
}
しかし、上記のコードは期待どおりに機能していません。コメントに記載されている間違った出力を確認してください
フォーマットに問題があると思います。誰か助けてくれませんか。