Подтвердить что ты не робот

Как получить миллисекунды с эпохи (1970-01-01) в Java?

Мне нужно получить миллисекунды с 1970-01-01 UTC до сих пор UTC в Java.

Я также хотел бы получить число миллисекунд от 1970-01-01 UTC к любому другому дате времени UTC.

4b9b3361

Ответ 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 от эпохи