Як отримати мілісекунди від епохи (01.01.1970) на Java?


79

Мені потрібно отримати кількість мілісекунд з 01.01.19 UTC за сьогодні до UTC у Java.

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



1
це не показує жодних дослідницьких зусиль.
jlordo

1
@PaulG - Причиною номер один проти відстоювання є наукові зусилля . Питання вирішується простим google.
Brian Roach

Відповіді:


164

Як щодо System.currentTimeMillis()?

З JavaDoc:

Повертає: різниця, вимірювана в мілісекундах, між поточним часом та півночі, 1 січня 1970 р. UTC

Java 8 представляє java.timeфреймворк, зокрема Instantклас, який " ... моделює ... точку на часовій лінії ... ":

long now = Instant.now().toEpochMilli();

Повертає: кількість мілісекунд з епохи 1970-01-01T00: 00: 00Z - тобто майже так само, як вище :-)

Ура,


3
Оскільки ця відповідь була 2012 року, а Java 8 відсутня, вона хороша. Не менш гарною є відповідь java.time від Prezemek. Це враховує поточну структуру Java 8 java.time.
Zack Jannsen

1
Для розвитку: Я протестував кілька способів отримати час UTC у мілісекундах і виявив, що java.time.Instant.now (). ToEpochMilli працює добре. Я порівняв це із параметрами методу ZonedDateTime.now (ZoneOffset.UTC) (які я бачив в інших публікаціях як варіанти) і, як очікувалося, підхід Java.time.Instant.now () був трохи швидшим на моїй машині ... низькі одноцифрові мілісекунди на тридцять послідовних запусків.
Зак Яннсен,

Пам'ятайте також, що System.currentTimeInMs()оновлення не відбувається кожні мілісекунди!
Печерний чоловік



0

Ви також можете спробувати

  Calendar calendar = Calendar.getInstance();
  System.out.println(calendar.getTimeInMillis());

getTimeInMillis () - поточний час у мілісекундах UTC від епохи


2
Цей жахливий клас дати та часу був витіснений роками тому сучасними класами java.time, визначеними JSR 310. Дивіться сучасне рішення у відповіді Bystrup & Hack-R
Basil Bourque

Сучасне рішення з використанням java.time.Instantпобаченого в цій відповіді та цій відповіді
Василь
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.