//Compare two different format date string, if two date same, return true, else return false
import java.text.SimpleDateFormat;
import java.util.Date;
public static boolean IsTwoDateSame(String sDateA, String sDateB)
{
boolean flag=false;
SimpleDateFormat sfA=null;
SimpleDateFormat sfB=null;
if(sDateA.matches("[0-9][0-9]/[0-9][0-9]/20[1-3][4-9]"))
{
sfA = new SimpleDateFormat("dd/MM/yyyy");
}
if(sDateA.matches("20[1-3][4-9]/[0-9][0-9]/[0-9][0-9]"))
{
sfA = new SimpleDateFormat("dd/MM/yyyy");
}
if(sDateA.matches("[0-9][0-9] [A-Z][a-z][a-z] 20[1-3][4-9]"))
{
sfA = new SimpleDateFormat("dd MMM yyyy");
}
if(sDateA.matches("[A-Z][a-z][a-z] [0-9][0-9] [A-Z][a-z][a-z] 20[1-3][4-9]"))
{
sfA = new SimpleDateFormat("EEE dd MMM yyyy");
}
if(sDateB.matches("[0-9][0-9]/[0-9][0-9]/20[1-3][4-9]"))
{
sfB = new SimpleDateFormat("yyyy/MM/dd");
}
if(sDateB.matches("20[1-3][4-9]/[0-9][0-9]/[0-9][0-9]"))
{
sfB = new SimpleDateFormat("yyyy/MM/dd");
}
if(sDateB.matches("[0-9][0-9] [A-Z][a-z][a-z] 20[1-3][4-9]"))
{
sfB = new SimpleDateFormat("dd MMM yyyy");
}
if(sDateB.matches("[A-Z][a-z][a-z] [0-9][0-9] [A-Z][a-z][a-z] 20[1-3][4-9]"))
{
sfB = new SimpleDateFormat("EEE dd MMM yyyy");
}
Date dateA;
Date dateB;
try {
dateA = sfA.parse(sDateA);
dateB = sfB.parse(sDateB);
if(dateA.equals(dateB))
{
flag=true;
}
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
We can also comare witch date is large or small. And if the date format is not supported, just add the according regular expression.