Java, ajoutant des minutes à une date, anomalie bizarre
Avec la Version Java 1.5.0_06 à la fois sur Windows et Ubuntu Linux :
Chaque fois que j'ai ajouter des minutes à la date du "2008/10/05 00:00:00" , il semble qu'une heure supplémentaire est ajouté.
ie: ajout de 360 minutes pour 2008/10/05 00:00:00 à minuit devrait arriver à 2008/10/05 06:00:00
Mais c'est en arrivant à 2008/10/05 07:00:00
Le totalement perplexe, c'est que cette SEULEMENT qui se passe quand la journée est 2008/10/05, tous les autres jours que j'essaie d'effectuer l'minutes plus correctement.
Suis-je fou ou est-ce un bug de Java ?
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
String date = "2008/10/05 00:00:00";
int minutesToAdd = 360; //6 hrs
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(date));
cal.add(Calendar.MINUTE, minutesToAdd);
System.out.println(cal.getTime());
} catch (ParseException e) {}
source d'informationauteur user27262
Vous devez vous connecter pour publier un commentaire.
Il y a un passage de l'heure d'été ce jour-là.
Êtes-vous en Nouvelle-Zélande? Si oui, cela signifie que votre fuseau horaire fichiers sont obsolètes. Mieux d'aller à la Java, site de téléchargement et télécharger de nouvelles; "JDK Fuseau horaire de l'heure d'été Outil de mise à Jour".
Cela pourrait-il être l'heure d'été des coups de pied dans?
Prendre un coup d'oeil à Joda-Time.
À partir de la Documentation:
"Joda-Time a été créé pour radicalement changer la date et l'heure de la manipulation en Java. Les classes du JDK Date et le Calendrier sont très mal conçues, ont eu de nombreux bugs et ont impair effets sur les performances."