Оба в порядке. И ни одна из них не рекомендуется, за исключением небольшого количества целей.
Что вам нужно миллисекунд с начала эпохи?
В Java у нас может быть много разных способов получить текущую метку времени,
Для текущей отметки времени просто используйте Instant.now()
. Нет необходимости конвертировать в миллисекунды.
Многие методы с первых лет Java, также многие в стандартной библиотеке, взяли long
количество миллисекунд с начала эпохи в качестве аргумента. Однако сегодня я считаю это старомодным. Посмотрите, сможете ли вы найти - или создать - или более современный метод, который вместо этого принимает, например, Instant
в качестве аргумента. Идите объектно-ориентированный и не используйте примитив long
. Это сделает ваш код более четким и понятным.
Как сказал в своем комментарии Элиот Фриш, если это для измерения прошедшего времени, вы можете предпочесть более высокое разрешение System.nanoTime()
.
Если вам нужно нужны миллисекунды с начала эпохи
Предполагая, что у вас есть веские причины требовать отсчета миллисекунд с начала эпохи,…
какая из нихРекомендуется: Instant.now().toEpochMilli()
или System.currentTimeMillis()
[?]
Мнения расходятся. Некоторые скажут, что вы должны использовать java.time, современный API даты и времени, для всей вашей работы с датой и временем. Это будет означать Instant
здесь. Unsg java.time, как правило, хорошая привычка, поскольку классы даты и времени из Java 1.0 и 1.1 (Date
, Calendar
, TimeZone
, DateFormat
, SimpleDateFormat
и другие) плохо разработаны и в настоящее время устарели, конечно, не то, что мы должны использовать больше. С другой стороны, мне не известно о каких-либо проблемах проектирования с System.curremtTimeMillis()
, в частности (за исключением того, что я упомянул выше об использовании числа long
в миллисекундах вообще, что очевидно присуще Instant.now().toEpochMilli()
и System.currentTimeMillis()
).
Если между ними есть небольшая разница в производительности, мне трудно представить себе ситуацию, в которой это будет иметь значение.
Выберите вариант, который вы считаете более читабельным и менее удивительным в своемконтекст.