Vik*_*nge 1 java compare date simpledateformat
在我的应用程序中,我需要比较以下格式给出的两个不同日期.
输入:String格式有2个输入日期.
String actual="11/12/2012 11:26:04 AM";
String expected="21/12/2012 09:49:12 AM";
Run Code Online (Sandbox Code Playgroud)
我试图使用下面的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);
}
Run Code Online (Sandbox Code Playgroud)
但上面的代码没有按预期工作.请检查评论中提到的错误输出
我认为格式化有问题.谁能帮帮我吗.
你的格式应该是:
SimpleDateFormat format= new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a");
Run Code Online (Sandbox Code Playgroud)
请注意year在小写ÿ