Ich habe ein Date-Objekt in Java als Java-Datumstyp gespeichert.
Ich habe auch ein Gregorianisches Kalendererstellungsdatum. Das gregorianische Kalenderdatum hat keine Parameter und ist daher eine Instanz des heutigen Datums (und der heutigen Uhrzeit?).
Mit dem Java-Datum möchte ich in der Lage sein, das Jahr, den Monat, den Tag, die Stunde, die Minute und die Sekunden aus dem Java-Datumstyp abzurufen und das Datum des Gregorianischen Kalenders zu vergleichen.
Ich habe gesehen, dass im Moment das Java-Datum als Long gespeichert ist und die einzigen verfügbaren Methoden scheinen, nur das Long als formatierte Datumszeichenfolge zu schreiben. Gibt es eine Möglichkeit, auf Jahr, Monat, Tag usw. zuzugreifen?
Ich sah , dass die getYear()
, getMonth()
etc. Methoden zur Date
Klasse veraltet. Ich habe mich gefragt, was die beste Vorgehensweise ist, um die Java Date-Instanz zu verwenden, die ich mit dem GregorianCalendar
Datum habe.
Mein Endziel ist es, eine Datumsberechnung durchzuführen, damit ich überprüfen kann, ob das Java-Datum innerhalb so vieler Stunden, Minuten usw. des heutigen Datums und der heutigen Uhrzeit liegt.
Ich bin immer noch ein Neuling in Java und bin ein bisschen verwirrt darüber.
quelle
Date.getYear()
Es leidet unter Problemen (die ich nicht kenne).Date.getYear()
Ich habe einmal mein Datum 30/06/2017 analysiert und es hat mein Jahr als 117 zurückgegeben. Sehen Sie, wo es gelandet ist, vor zweitausend Jahren. Aber wenn ich einfach das Datumsobjekt drucke, war die Ausgabe in OrdnungDate.getYear();
. Aber nicht .Antworten:
Verwenden Sie etwas wie:
Achtung, Monate beginnen bei 0, nicht bei 1.
Bearbeiten : Seit Java 8 ist es besser, java.time.LocalDate als java.util.Calendar zu verwenden . In dieser Antwort erfahren Sie, wie es geht.
quelle
cal.add(Calendar.DAY_OF_MONTH, -48)
Tagesarithmetik für Kalenderobjekte ausführen. Und Sie können zwei Kalenderobjekte mit vergleichencal.compareTo(anotherCal)
.Mit Java 8 und höher können Sie das Date- Objekt in ein LocalDate- Objekt konvertieren und dann problemlos Jahr, Monat und Tag abrufen .
Beachten Sie, dass
getMonthValue()
ein int-Wert von 1 bis 12 zurückgegeben wird.quelle
LocalDate
in Java 8 ist die beste Lösung, die Ihre Zeit spart, eine andere Lösung, die verwendet wirdCalendar
undDate
voller Probleme ist.Sie könnten so etwas tun, es wird erklären, wie die
Date
Klasse funktioniert.quelle
mm
geben Minuten an, GroßbuchstabenMM
bedeuten Monat des Jahres.EDIT: Die Ausgabe für
date
=Fri Jun 15 09:20:21 CEST 2018
ist:quelle
quelle
quelle
java.util.Date
,java.util.Calendar
undjava.text.SimpleDateFormat
sind jetzt Erbe , durch die verdrängte java.time Klassen in Java gebaut 8 und höher. Siehe Tutorial von Oracle .getYearMonthDay2 (die Kalenderlösung) ist zehnmal schneller. Jetzt haben Sie JJJJ MM TT 00 00 00 und vergleichen dann mit date.compare
quelle
Es könnte einfacher sein
quelle
Seien Sie vorsichtig, beginnen Sie bei 0 und nicht bei 1. Und auch Kalender verwenden Sie pm wie am, damit Sie bei der Verwendung von Stunden und Minuten sehr vorsichtig sind.
quelle