Calcul de la durée du temps avec Joda-Time
Je suis en train d'utiliser Joda-Temps afin de connaître la durée entre deux points dans le temps, où chaque point est donnée dans son propre fuseau horaire local.
E. g. :
DateTime ny = new DateTime(2011, 2, 2, 7, 0, 0, 0, DateTimeZone.forID("America/New_York"));
DateTime la = new DateTime(2011, 2, 3, 10, 15, 0, 0, DateTimeZone.forID("America/Los_Angeles"));
DateTime utc1 = ny.withZone(DateTimeZone.UTC);
DateTime utc2 = la.withZone(DateTimeZone.UTC);
Period period = new Period(utc1, utc2);
Maintenant, je souhaite savoir si il prend en compte la lumière du jour, l'épargne et les années bissextiles...
Aussi, est l'utilisation de la "Période" la bonne Joda-Time " pour y parvenir?
Merci 😉
OriginalL'auteur bloodcell | 2011-02-13
Vous devez vous connecter pour publier un commentaire.
Le code que vous avez fournis à travailler et à prendre en compte les fuseaux horaires, mais vous n'avez pas besoin de faire la conversion à l'UTC. Ce code est plus simple et fait la même chose (à l'aide d'une Durée plutôt qu'une Période de):
OriginalL'auteur Russ Hayward
Selon la façon dont vous l'utilisez, le code ci-dessus peut être pas une bonne idée.
Tous DateTime constructeurs qui prennent int pour l'année/mois/jour/heure, etc sont vulnérables à l'heure d'été (DST) périodes de transition, auquel cas Joda-time lèvera une exception. Donc, si l'heure pendant la période de transition est une entrée possible dans votre application, il ne sera pas:
De même, vous devrez faire face à un autre problème, à l'automne, quand il n'est pas possible de déterminer quelle heure est visé *comme il n'y aura 2 * 2o heures dans le fuseau horaire. DateTime méthodes withHourOfday et withTime sont vulnérables à la même question, ainsi que l'analyse de datetimes comme des chaînes de caractères avec les fuseaux horaires qui sont touchés par la DST.
Solutions de contournement possibles incluent
OriginalL'auteur fcarlsen