ddso
#1
Por que acontece isso nessa expressão?
insertedDate = Mon Aug 09 17:19:00 BRT 2010
GregorianCalendar dataInitial = new GregorianCalendar();
dataInitial.setTime(new Date((new SimpleDateFormat("dd/MM/yyyy").format(insertedDate)))); // isso retorna Wed Sep 08 00:00:00 BRT 2010 !!
a data é dia 09 e na conversão, retorna dia 08, por que?
Não use o construtor de Date que aceita uma String. Você vai ter muitos problemas com ele (ele é “deprecated” por uma boa razão).
http://download-llnw.oracle.com/javase/6/docs/api/java/util/Date.html#Date(java.lang.String)
Ele provavelmente está tentando ler em formato americano, não brasileiro. E isso é que fez dar resultados errados.
Repita comigo: nunca mais vou usar o construtor de Date que aceita uma String. É pagar para ver problemas.