Da diese Antwort 2012 war und Java 8 nicht verfügbar war, ist sie gut. Ebenso gut ist die java.time Antwort von Prezemek. Dies berücksichtigt das aktuelle Java 8 java.time-Framework.
Zack Jannsen
1
Zur Bearbeitung: Ich habe einige Möglichkeiten getestet, um eine UTC-Zeit in Millisekunden zu erhalten, und festgestellt, dass java.time.Instant.now (). ToEpochMilli gut funktioniert. Ich habe dies mit den Methodenoptionen der ZonedDateTime.now (ZoneOffset.UTC) -Methode (die ich in anderen Posts als Optionen gesehen habe) verglichen, und wie erwartet war der Java.time.Instant.now () -Ansatz auf meinem Computer etwas schneller ... niedrige einstellige Millisekunden in dreißig aufeinanderfolgenden Läufen.
Zack Jannsen
Denken Sie auch daran, dass System.currentTimeInMs()nicht jede Millisekunde aktualisiert wird!
Höhlenmensch
45
java.time
Verwenden des java.timein Java 8 und höher integrierten Frameworks.
Diese schreckliche Datums- / Uhrzeitklasse wurde vor Jahren durch die modernen Java.time- Klassen ersetzt, die durch JSR 310 definiert wurden. Siehe moderne Lösung in Antworten von Bystrup & Hack-R
Antworten:
Wie wäre es mit
System.currentTimeMillis()
?Aus dem JavaDoc:
Rückgabe: Die Differenz, gemessen in Millisekunden, zwischen der aktuellen Zeit und Mitternacht, dem 1. Januar 1970 UTC
Java 8 führt das
java.time
Framework ein, insbesondere dieInstant
Klasse, die " ... einen ... Punkt auf der Zeitachse modelliert ... ":long now = Instant.now().toEpochMilli();
Rückgabe: Die Anzahl der Millisekunden seit der Epoche 1970-01-01T00: 00: 00Z - dh so ziemlich die gleiche wie oben :-)
Prost,
quelle
System.currentTimeInMs()
nicht jede Millisekunde aktualisiert wird!java.time
Verwenden des
java.time
in Java 8 und höher integrierten Frameworks.import java.time.Instant; Instant.now().toEpochMilli(); //Long = 1450879900184 Instant.now().getEpochSecond(); //Long = 1450879900
Dies funktioniert in UTC, weil
Instant.now()
wirklich aufgerufen wirdClock.systemUTC().instant()
https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html
quelle
Probiere auch
System.currentTimeMillis()
quelle
Sie können es auch versuchen
getTimeInMillis () - Die aktuelle Zeit in UTC-Millisekunden ab der Epoche
quelle
java.time.Instant
in dieser Antwort und dieser Antwort gesehen