2 Stimmen

Wie kann man die Zeit in einer Java-Anwendung am besten verwalten?

Ich verwende also Hibernate und arbeite mit einer Anwendung, die die Zeit verwaltet. Was ist der beste Weg, um mit Zeiten in einer 24-Stunden-Uhr umgehen?

Ich muss mir zu Beginn dieser Anwendung keine Gedanken über Zeitzonenprobleme machen, aber es wäre am besten, wenn diese Funktion von Anfang an eingebaut wäre.

Ich verwende auch Hibernate, nur so zur Info

4voto

Vladimir Dyuzhev Punkte 17849

Speichern Sie sie als long ts = System.currentTimeMillis(). Dieses Format ist eigentlich TimeZone-sicher, da es die Zeit in UTC zurückgibt.

Wenn Sie nur einen Teil der Zeit benötigen, ist mir kein eingebauter Typ in Hib bekannt, aber das Schreiben eines eigenen Typs Time24 ist trivial - implementieren Sie einfach entweder org.hibernate.UserType oder org.hibernate.CompositeUserType (load=nullSafeGet und store=nullSafeSet Methoden in ihnen).

Siehe http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-types-custom

Aber ich würde trotzdem absolut Zeit sparen. Kann in Zukunft helfen.

P.S. Das alles setzt voraus, dass die Speicherung des Datums aus irgendeinem Grund nicht in Frage kommt. TimeZone in Date ist manchmal im Weg, wirklich ;)

2voto

Spencer Stejskal Punkte 488

Ich würde Ihnen vorschlagen, Joda zu verwenden, http://joda-time.sourceforge.net/ die wesentlich intuitivere und kontrollierbarere Funktionen für die Zeitverarbeitung bietet als die Kernimplementierungen von Datum und Kalender. JSR 310 ist eigentlich ein Vorschlag zur Aufnahme einer neuen Zeit-API in Java 7, die weitgehend auf Joda basieren wird. Joda bietet außerdem sowohl eine zeitzonenabhängige als auch eine zeitzonenunabhängige Zeitbehandlung, was den Umgang mit Intervallen vereinfacht.

0 Stimmen

JODA ist eine großartige API für Datum und Uhrzeit. Ich verwende es bereits in derselben Anwendung für den Umgang mit Zeiträumen, die Java 1.5 nicht so gut beherrscht wie Joda

1voto

Mike Tunnicliffe Punkte 10404

Gibt es etwas falsch mit java.util.Date verwenden?

1 Stimmen

Java.util.Date ist nur ein Wrapper um den UTC-Long-Wert, so dass es oft genauso einfach ist, den Long-Wert selbst zu behalten (siehe Vladimir Dyuzhevs Antwort).

0 Stimmen

Java.util.Date verwendet einfach die currentTimeMillis.

0voto

davetron5000 Punkte 22918

java.util.Date verwendet werden; nicht eine lange (und schon gar nicht eine Calendar ).

Wenn Sie Anmerkungen verwenden, achten Sie darauf, dass Sie @Temporal

0 Stimmen

Warum nicht eine lange Zeitspanne verwenden? Kalender wäre definitiv nicht angemessen.

0voto

Daniel Honig Punkte 4063

Vor kurzem habe ich auch eine andere Bibliothek gefunden, die eine Antwort auf JODA zu sein scheint. http://www.date4j.net/

Die Vorteile sind auf der Homepage des Projekts aufgeführt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X