Ich erstelle ein webbasiertes System, das in Ländern aus der ganzen Welt eingesetzt wird. Eine Art von Daten, die gespeichert werden müssen, sind Datum und Uhrzeit.
Was sind die Vor- und Nachteile der Verwendung der Java-Datums- und Zeitklassen im Vergleich zu Bibliotheken von Drittanbietern wie Joda time ? Ich denke, diese Bibliotheken von Drittanbietern existieren aus gutem Grund, aber ich habe sie selbst nie wirklich verglichen.
Antworten:
EDIT: Jetzt, da Java 8 veröffentlicht wurde, tun Sie dies, wenn Sie das verwenden können!
java.time
ist meiner Meinung nach sogar sauberer als Joda Time. Wenn Sie jedoch vor Java-8 nicht weiterkommen, lesen Sie weiter ...Max fragte nach den Vor- und Nachteilen der Verwendung von Joda ...
Vorteile:
java.time
in Java 8, da diese zumindest etwas ähnlich sindNachteile:
DateTimeZoneBuilder
in der Vergangenheit nicht effektiv genutzt. Dies ist jedoch ein sehr seltener Anwendungsfall.Um auf die Idee von oxbow_lakes zu reagieren, effektiv eine eigene kleine API zu erstellen, sind hier meine Ansichten, warum dies eine schlechte Idee ist:
quelle
java.time.*
für Java 6 und 7: threeten.org/threetenbpNun, es sei denn, Sie möchten auf Java 8 warten, in der Hoffnung, dass eine bessere API zum Bearbeiten von Datum und Uhrzeit implementiert wird. Ja, bitte verwenden Sie Joda-Time . Es ist zeitsparend und vermeidet viele Kopfschmerzen.
quelle
Die Antwort lautet: es kommt darauf an
JODA (und JSR-310) ist eine voll funktionsfähige Datums- / Zeitbibliothek, einschließlich Unterstützung für die Verwendung mit mehreren Kalendersystemen.
Persönlich empfand ich JODA als einen Schritt zu weit in Bezug auf die Komplexität für das, was ich brauche. Die 2 Hauptfehler (IMHO) in Standard-Java
Date
undCalendar
-Klassen sind:Obwohl diese von JODA angesprochen werden, ist es ziemlich einfach, eigene Klassen für
YearMonthDay
und zu rollenInstant
, die beide die Java-Klassen unter der Haube für tatsächliche "kalendarische" Berechnungen verwenden. Dann müssen Sie sich nicht mit einer API von> 100 Klassen, einem anderen Formatierungs- / Parsing-Mechanismus usw. vertraut machen.Wenn Sie eine vollständige Darstellung verschiedener Chronologien benötigen (z. B. Hebräisch) oder Ihr eigenes imaginäres Kalendersystem definieren möchten (z. B. für ein Spiel, das Sie schreiben), ist JODA oder JRS-310 möglicherweise das Richtige für Sie. Wenn nicht, dann würde ich vorschlagen, dass das Rollen Ihrer eigenen möglicherweise der richtige Weg ist.
Der JSR-310-Spezifikationsleiter ist Stephen Colebourne, der JODA an erster Stelle geschrieben hat und daher JODA logisch ersetzen wird.
quelle
Es hängt alles davon ab, was Sie mit den Daten machen. Wenn Sie sie einfach beibehalten, werden die in Java integrierten Daten wahrscheinlich alles tun, was Sie möchten. Wenn Sie jedoch umfangreiche Manipulationen am Zeitdatum durchführen, sind Sie mit Joda wahrscheinlich besser dran.
quelle
Sie sollten eine Joda-Time-Bibliothek verwenden, weil:
Datumsdarstellung.
Exception in thread "main" org.joda.time.IllegalFieldValueException: Cannot parse "2014-02-31": Value 31 for dayOfMonth must be in the range [1,28].
Diese Seite könnte Ihnen für weitere Details gefallen: http://swcodes.blogspot.com/
quelle