Da java.util.Date größtenteils veraltet ist, was ist der richtige Weg, um einen Zeitstempel für ein bestimmtes Datum, UTC-Zeit, zu bekommen? Die eine, die gegen System.currentTimeMillis()
verglichen werden könnte.System.currentTimeMillis() für ein bestimmtes Datum?
Antwort
Mit der Klasse Calendar können Sie einen Zeitstempel zu einer bestimmten Zeit in einer bestimmten Zeitzone erstellen. Sobald Sie das haben, können Sie dann den Millisekunden-Zeitstempel erhalten zu vergleichen mit:
Calendar cal = new GregorianCalendar();
cal.set(Calendar.DAY_OF_MONTH, 10);
// etc...
if (System.currentTimeMillis() < cal.getTimeInMillis()) {
// do your stuff
}
edit: geändert direktere Methode zu verwenden, um Zeit in Millisekunden von Kalender-Instanz zu erhalten. Danke Outlaw Programmer
Kalender hat tatsächlich eine getTimeInMillis() -Methode, die etwas direkter ist als getTime(). GetTime(). +1 sowieso. –
Werfen Sie einen Blick auf die Calendar Klasse.
Sie können eine Daten mit der aktuellen Zeit (nicht veraltet) machen und dann Kalender daraus machen (es gibt auch andere Möglichkeiten).
Der "offizielle" Ersatz für viele Dinge, für die Datum verwendet wurde, ist Kalender. Leider ist es eher ungeschickt und überentwickelt. Ihr Problem kann wie folgt gelöst werden:
long currentMillis = System.currentTimeMillis();
Date date = new Date(currentMillis);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
long calendarMillis = calendar.getTimeInMillis();
assert currentMillis == calendarMillis;
Kalender können auch auf unterschiedliche Weise initialisiert werden, auch ein Feld zu einer Zeit (Stunde, Minute, Sekunde, etc.). Werfen Sie einen Blick auf den Javadoc.
Obwohl ich es selbst nicht versucht habe, sollten Sie sich das Projekt JODA-Time (open source) ansehen, wenn Ihr Projekt externe Bibliotheken erlaubt. AFAIK, JODA Zeit hat viel zu einem neuen JSR (normalerweise in Java7) zu Datum/Uhrzeit beigetragen.
Viele Leute behaupten, JODA Zeit ist die Lösung für alle einen Versuch
Auf jeden Fall ;-) java.util.Date/Calendar Probleme wert.
Ich empfehle auch, JODA-Time - aktuelle java.util.Date und Kalender sind in vielerlei Hinsicht ziemlich gebrochen (auf der JODA-Seite gibt es motivierende Geschichte darüber, warum JODA-Projekt wurde in erster Linie erstellt). –
- 1. Wetter für bestimmtes Datum?
- 2. Epoch für ein bestimmtes Datum mit Javascript
- 3. Auswählen neuer Zeilen für ein bestimmtes Datum
- 4. Zeitzonenumrechnung für ein bestimmtes Datum in Java
- 5. Lokale Benachrichtigung für ein bestimmtes Datum einplanen und jährlich wiederholen
- 6. wie ein bestimmtes Datum von heute vergleichen
- 7. So berechnen Sie die Wochennummer für ein bestimmtes Datum Android
- 8. Erhalten Sie alle Dateien von VSS für ein bestimmtes Datum?
- 9. NSDateFormatter dateFromString gibt null für ein bestimmtes Datum zurück
- 10. Wie werden Commits für ein bestimmtes Datum angezeigt?
- 11. Lade Version des Pakets für ein bestimmtes Datum in Pharo
- 12. Datum auf tbd setzen, wenn es ein bestimmtes Datum ist
- 13. Gruppierung nach Datum, die nur ein bestimmtes Datum enthält
- 14. Android - wie man einen Alarm auf ein bestimmtes Datum setzt
- 15. Konvertieren eines Java System.currentTimeMillis() bis zum Datum in Python
- 16. Vergleichen System.currentTimeMillis()
- 17. grep für ein bestimmtes Muster
- 18. Suchzeichenfolge für ein bestimmtes Zeichen
- 19. Excel VBA bestimmtes Datum finden
- 20. Überprüfen Sie, ob ein bestimmtes Datum vergangen ist
- 21. Wie Sie mit Apache POI ein Excel-Blatt für ein bestimmtes Datum suchen?
- 22. iPhone OS: Wie erstelle ich ein NSDate für ein bestimmtes Datum?
- 23. MaxDate auf jquery ui datepicker auf ein bestimmtes Datum setzen
- 24. Berechnen des Wochentages, indem Sie ein bestimmtes Datum eingeben
- 25. Überprüfen, ob ein bestimmtes Datum zwischen einem Datumsbereich passt
- 26. deaktivieren ein bestimmtes Datum des Tages im Android Datumsauswahl
- 27. Wie erstelle ich ein bestimmtes Datum in HSQLDB?
- 28. Ansicht ändern, nachdem ein bestimmtes Datum abgelaufen ist
- 29. PHP-Datum ("I") für ein zukünftiges oder vergangenes Datum
- 30. wie pip installieren von Github für bestimmtes Datum
Beachten Sie: Die problematischen alten Datum-Uhrzeit-Klassen wie ['java.util.Date'] (https://docs.oracle.com/javase/8/docs/api/java/util/Date.html), ['java.util.Calendar'] (https://docs.oracle.com/javase/8/docs/api/java/util/Date.html) und' java.text.SimpleTextFormat' sind jetzt Legacy] (https://en.wikipedia.org/wiki/Legacy_system), ersetzt durch [java.time] (https://docs.oracle.com/javase/8/docs/api/java/time/package -summary.html) Klassen. –