2010-11-23 5 views
1

Je dois préparer une application qui représentera graphiquement l'utilisation des ressources au fil du temps, mais il y a un jour de l'année qui a 25 heures (le jour avec 23 heures n'est pas un gros problème). Comment puis-je représenter cela avec un Date? Quelle serait la meilleure façon de le faire?jours avec 25 heures sur Java (jours d'été)

Je voudrais utiliser Date de classe, (comme cela fonctionne, est Comparable et ainsi de suite) comme une clé, mais je ne suis pas sûr que cela fonctionnerait ... Des idées?

Répondre

6

La classe Date elle-même représente simplement un instant dans le temps, à partir de l'époque UTC Unix. Il n'a pas de concept de fuseaux horaires, calendriers, etc.

Il est difficile de savoir exactement ce que vous essayez de représenter, mais en général Joda Time est un beaucoup mieux API de date/heure que les types de java.util. *. Mon principal conseil sur la réflexion sur les questions liées au temps est d'être vraiment, très clair sur le concept que chaque valeur est censée représenter. Si vous êtes intéressé par une date locale (une date dans un calendrier particulier, sans référence à un fuseau horaire particulier), la classe LocalDate de Joda Time est probablement ce que vous recherchez. Si vous avez besoin d'associer des informations de fuseau horaire, alors DateTime est probablement votre meilleur pari - bien que ne représente qu'un instant dans un calendrier et un fuseau horaire particulier, plutôt qu'un jour entier.

+0

Merci pour l'indice Joda! – SoulWanderer

1

Il est important de ne pas confondre la façon dont le temps est représenté et comment il est affiché.

Dans sa représentation, vous avez seulement le nombre de milli-secondes depuis le 1/1/1970. Lorsque vous faites des calculs sur ce point, vous comparez simplement cette valeur longue.

Lorsque vous affichez cette heure/date, en fonction de votre fuseau horaire, vous pouvez avoir une période de 25 heures ou 23 heures avec le même jour.

Questions connexes