Senti non sò se può aiutarti, ma io ho creato una classe per gestire le date, sicuramente non è la soluzione migliore, ma potrebbe servirti

import java.util.GregorianCalendar;

public class MyData {
private String giorno;
private String mese;
private String anno;


public MyData (String data)
{
try
{
if(data.charAt(1)=='-' && data.charAt(3)=='-')
{
giorno=data.substring(0,1);
mese=data.substring(2, 3);
anno=data.substring(4, 8);
}
else if(data.charAt(1)=='-' && data.charAt(4)=='-')
{
giorno=data.substring(0,1);
mese=data.substring(2, 4);
anno=data.substring(5, 9);
}
else if(data.charAt(2)=='-' && data.charAt(4)=='-')
{
giorno=data.substring(0,2);
mese=data.substring(3, 4);
anno=data.substring(5, 9);
}
else if(data.charAt(2)=='-' && data.charAt(5)=='-')
{
giorno=data.substring(0,2);
mese=data.substring(3, 5);
anno=data.substring(6, 10);
}
else if(data.length()==10)
{

giorno=data.substring(8,10);
mese=data.substring(5, 7);
anno=data.substring(0, 4);
}
else if(data.length()==9 && data.charAt(6)=='-')
{
giorno=data.substring(7,9);
mese=data.substring(5, 6);
anno=data.substring(0, 4);
}
else if(data.length()==9 && data.charAt(7)=='-')
{
giorno=data.substring(8,9);
mese=data.substring(5, 7);
anno=data.substring(0, 4);
}
else if(data.length()==8)
{
giorno=data.substring(7,8);
mese=data.substring(5, 6);
anno=data.substring(0, 4);
}


}catch(StringIndexOutOfBoundsException e)
{
giorno="0";
mese="0";
anno="0";

}

}

public MyData (String g,String m, String a)
{
giorno=g;
mese=m;
anno=a;
}


public MyData (int g,int m, int a)
{
giorno=""+g;
mese=""+m;
anno=""+a;

}


public GregorianCalendar getDataGG_MM_AAAA()
{
GregorianCalendar data = new GregorianCalendar(getIntGiorno(),getIntMese(),getI ntAnno());
return data;

}

public String getDataStrGG_MM_AAAA(String separatore)
{
return getGiorno()+separatore+getMese()+separatore+getAnn o();
}


public boolean before(MyData datapassata)
{

GregorianCalendar data1 =new GregorianCalendar(getIntAnno(),getIntMese(),getInt Giorno());
GregorianCalendar data2= new GregorianCalendar(datapassata.getIntAnno(),datapas sata.getIntMese(),datapassata.getIntGiorno());
return !data2.before(data1);
}

public boolean after(MyData datapassata)
{
GregorianCalendar data1 =new GregorianCalendar(getIntAnno(),getIntMese(),getInt Giorno());
GregorianCalendar data2= new GregorianCalendar(datapassata.getIntAnno(),datapas sata.getIntMese(),datapassata.getIntGiorno());
return !data2.after(data1);
}
public String getSQLData ()
{

return getAnno()+"-"+getMese()+"-"+ getGiorno();
}




public String getGiorno() {
return giorno;
}


public String getMese() {
return mese;
}


public String getAnno() {
return anno;
}

public int getIntGiorno() {
return Integer.parseInt(giorno);
}


public int getIntMese() {
return Integer.parseInt(mese);
}


public int getIntAnno() {
return Integer.parseInt(anno);
}



public void setGiorno(String giorno) {
this.giorno = giorno;
}


public void setMese(String mese) {
this.mese = mese;
}


public void setAnno(String anno) {
this.anno = anno;
}