Ich habe ein Java-Datumsobjekt:
Date currentDate = new Date();
Dies gibt das aktuelle Datum und die aktuelle Uhrzeit an. Beispiel:
Thu Jan 12 10:17:47 GMT 2012
Stattdessen möchte ich das Datum erhalten und es auf eine Stunde zurück ändern, damit es mir Folgendes gibt:
Thu Jan 12 09:17:47 GMT 2012
Was wäre der beste Weg, dies zu tun?
mktime
Gibt es ein Äquivalent in Java? 60 Minuten davon abziehen?Antworten:
java.util.Calendar
java.util.Date
org.joda.time.LocalDateTime
Java 8: java.time.LocalDateTime
Java 8 java.time.Instant
quelle
Ähnlich der Lösung von @Sumit Jain
oder
quelle
Date currentDate = new Date(System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(10));
Dies sollte 10 Minuten hinterher sein?tl; dr
In UTC :
Oder in Zonen unterteilt:
Mit java.time
In Java 8 und höher ist das neue Java.time- Framework integriert.
Instant
Wenn Sie sich nur für UTC (GMT) interessieren, verwenden Sie die
Instant
Klasse.Zur Konsole werfen.
Beachten Sie, wie in diesem Moment zum gestrigen Datum zurückgekehrt wurde.
ZonedDateTime
Wenn Sie sich für eine Zeitzone interessieren, verwenden Sie die
ZonedDateTime
Klasse. Sie können mit einem Instant beginnen und eine Zeitzone, einZoneId
Objekt, zuweisen . Diese Klasse behandelt die erforderlichen Anpassungen für Anomalien wie Sommerzeit (DST) .Zur Konsole werfen.
Umwandlung
Die alten Klassen java.util.Date/.Calendar sind jetzt veraltet. Vermeide sie. Sie sind notorisch lästig und verwirrend.
Wenn Sie die alten Klassen für den Betrieb mit altem Code verwenden müssen, der für die java.time-Typen noch nicht aktualisiert wurde, rufen Sie die Konvertierungsmethoden auf. Hier ist ein Beispielcode, der von einem Instant oder einem ZonedDateTime zu einem java.util.Date wechselt.
…oder…
Über java.time
Das java.time- Framework ist in Java 8 und höher integriert. Diese Klassen verdrängen die lästigen alten Legacy - Datum-Zeit - Klassen wie
java.util.Date
,Calendar
, &SimpleDateFormat
.Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration zu den Klassen java.time .
Weitere Informationen finden Sie im Oracle-Lernprogramm . Suchen Sie im Stapelüberlauf nach vielen Beispielen und Erklärungen. Die Spezifikation ist JSR 310 .
Sie können java.time- Objekte direkt mit Ihrer Datenbank austauschen . Verwenden Sie einen JDBC-Treiber, der mit JDBC 4.2 oder höher kompatibel ist . Keine Notwendigkeit für Zeichenfolgen, keine Notwendigkeit für
java.sql.*
Klassen.Woher bekomme ich die java.time-Klassen?
Das ThreeTen-Extra- Projekt erweitert java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen von java.time. Sie können einige nützliche Klassen hier wie finden
Interval
,YearWeek
,YearQuarter
, und mehr .quelle
Verwenden Sie Kalender .
quelle
Oder nutzen Sie die berühmte Joda Time- Bibliothek:
quelle
Subtrahieren Sie einfach die Anzahl der Millisekunden in einer Stunde vom Datum.
currentDate.setTime(currentDate.getTime() - 3600 * 1000));
quelle
Sie können den folgenden Code für Datum und Uhrzeit verwenden:
Ausgabe :
Dieser Link ist gut: Siehe hier
Und siehe: Siehe auch
Und: hier
Und: hier
Und: hier
Wenn Sie nur Zeit brauchen:
quelle
Dies kann erreicht werden mit
java.util.Date
. Der folgende Code subtrahiert 1 Stunde von Ihrem Datum.Ähnliches gilt für das Subtrahieren von 20 Sekunden von Ihrem Datum
quelle
Ermitteln Sie die Zeit in Millisekunden abzüglich Ihrer Minuten in Millisekunden und konvertieren Sie sie in Datum. Hier muss man einen objektivieren !!!
quelle
Es funktionierte für mich stattdessen im Format. Um mit der Zeit zu arbeiten, verwenden Sie einfach die Methoden parse und toString ()
String localTime = "6:11"; LocalTime localTime = LocalTime.parse (Ortszeit)
LocalTime lt = 6:11; localTime = lt.toString ()
quelle