Как получить миллисекунды с эпохи (1970-01-01) в Java?
Мне нужно получить миллисекунды с 1970-01-01 UTC до сих пор UTC в Java.
Я также хотел бы получить число миллисекунд от 1970-01-01 UTC к любому другому дате времени UTC.
Ответы
Ответ 1
Как насчет System.currentTimeMillis()
?
Из JavaDoc:
Возвращает: разница, измеренная в миллисекундах, между текущим временем и полночью, 1 января 1970 г. UTC
Java 8 представляет java.time
, особенно Instant
класс, который "... моделирует... точку на линии времени...":
long now = Instant.now().toEpochMilli();
Возвращает: количество миллисекунд с эпохи 1970-01-01T00: 00: 00Z - то есть примерно такое же, как указано выше: -)
Приветствия,
Ответ 2
java.time
Используя java.time
, встроенную в Java 8 и более позднюю версию.
import java.time.Instant;
Instant.now().toEpochMilli(); //Long = 1450879900184
Instant.now().getEpochSecond(); //Long = 1450879900
Это работает в UTC, потому что Instant.now()
действительно вызывает Clock.systemUTC().instant()
https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html
Ответ 3
Также попробуйте System.currentTimeMillis()
Ответ 4
Вы также можете попробовать
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTimeInMillis());
getTimeInMillis() - текущее время в миллисекундах UTC от эпохи