Ich muss die Anzahl der Millisekunden von 1970-01-01 UTC bis jetzt UTC in Java ermitteln.
Ich möchte auch in der Lage sein, die Anzahl der Millisekunden von 1970-01-01 UTC auf eine andere UTC-Datumszeit zu übertragen.
Ich muss die Anzahl der Millisekunden von 1970-01-01 UTC bis jetzt UTC in Java ermitteln.
Ich möchte auch in der Lage sein, die Anzahl der Millisekunden von 1970-01-01 UTC auf eine andere UTC-Datumszeit zu übertragen.
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 die Instant
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,
System.currentTimeInMs()
nicht jede Millisekunde aktualisiert wird!
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
Probiere auch System.currentTimeMillis()
Sie können es auch versuchen
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTimeInMillis());
getTimeInMillis () - Die aktuelle Zeit in UTC-Millisekunden ab der Epoche