Як отримати мілісекунди від епохи (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.