Comment gérer jodatime Illégale instant en raison du décalage de fuseau horaire de transition

Je veux mettre en place joda DateTime à aujourd'hui, à 2 heures du matin (voir l'exemple de code ci-dessous). Mais je suis de cette exception:

Exception in thread "main" org.joda.time.IllegalFieldValueException: Value 2 for hourOfDay is not supported: Illegal instant due to time zone offset transition: 2011-03-27T02:52:05.239 (Europe/Prague)
at org.joda.time.chrono.ZonedChronology$ZonedDateTimeField.set(ZonedChronology.java:469)
at org.joda.time.MutableDateTime.setHourOfDay(MutableDateTime.java:702)

Quelle est la manière correcte de la poignée de l'exception ci-dessus ou pour créer une DateTime à une heure donnée de la journée?

Exemple de code:

MutableDateTime now = new MutableDateTime();
now.setHourOfDay(2);
now.setMinuteOfHour(0);
now.setSecondOfMinute(0);
now.setMillisOfSecond(0);
DateTime myDate = now.toDateTime();

Grâce.

  • pertinentes: joda-interest.219941.n2.nabble.com/...
  • Il semble toujours à moi que ces questions sont beaucoup plus compliquées qu'elles ne devraient l'être. En interne, Joda représente instants comme POSIX-style UTC entiers longs. Depuis ce temps, le format est un simple nombre cumulatif de millisecondes, et n'est jamais ajusté pour l'heure d'été, l'utilise en interne pour datetimes toujours dispense de l'heure d'été des problèmes de conversion. Le problème avec l'heure d'été est amorti sur la conversion des fonctions de conversion de l'instant en local formaté fuseau horaire courant des cordes quand il a besoin d'être affiché à l'utilisateur. Cette approche semble beaucoup plus simple pour moi.
  • regarde ma réponse stackoverflow.com/questions/17665921/...