Comment obtenir la liste des mois & années entre deux dates

J'ai besoin de votre aide dans l'obtention de la liste des mois et des années dans la Chaîne entre les deux dates. L'utilisateur entre deux dates dans le format de Chaîne de:

String date1 ="JAN-2015";
String date2 ="APR-2015";

De sorte que le résultat devrait être:

  • Jan-2015
  • FEB-2015
  • MAR-2015

J'ai essayé d'utiliser le code suivant mais il m'a donné de mauvais résultats:

List<Date> dates = new ArrayList<Date>();

String str_date ="JAN-2015";
String end_date ="APR-2015";

DateFormat formatter ; 

formatter = new SimpleDateFormat("MMM-yyyy");
Date  startDate = formatter.parse(str_date); 
Date  endDate = formatter.parse(end_date);
long endTime =endDate.getTime() ; 
long curTime = startDate.getTime();
while (curTime <= endTime) {
    dates.add(new Date(curTime));
    curTime ++;
}
for(int i=0;i<dates.size();i++){
    Date lDate =(Date)dates.get(i);
    String ds = formatter.format(lDate);    
    System.out.println(ds);
}
Veuillez donner des détails sur les résultats que vous obtenez et ce que vous avez fait pour essayer de trouver le problème.
J'ai Java heap space erreur
curTime est le temps en millisecondes. Cela signifie qu'un mois est d'environ 30 jours × 24 heures x 60 minutes x 60 secondes × 1000 millisecondes, et vous êtes en augmentant par une seule milliseconde à chaque itération.
Alors, où devrais-je ajouter le calcul ci-dessus?
Si vous êtes à l'aide de Java 8, vous devez utiliser le java.time paquet, en utilisant LocalDate plutôt que Date. si vous ne le faites pas, vous devez télécharger Joda Temps et l'utiliser. Vous pouvez aussi le faire en utilisant un Calendar objet et le réglage de la month champ.

OriginalL'auteur 99maas | 2015-04-06