Преобразовать единицу длительности в миллисекунды

Я хочу иметь API, который выглядит как

public static long toMillis ( long duration, ChronoUnit unit ) {
   // magic duration to millis
}

toMillis( 5, ChronoUnit.SECONDS); // 5000

конечно, на самом деле я не пишу toMillis, но это то, что я пытаюсь сделать.


person xenoterracide    schedule 08.06.2016    source источник
comment
Не могли бы вы использовать ChronoUnit#getDuration(), а затем преобразовать его в миллисекунды, используя Duration#toMillis()?   -  person Whymarrh    schedule 09.06.2016
comment
Я предполагаю, что это связано с API даты/времени. Если вы просто ищете утилиту преобразования единиц измерения, вы можете использовать TimeUnit.SECONDS.toMillis(duration).   -  person shmosel    schedule 09.06.2016
comment
@shmosel, как ни странно, я нашел этот API здесь, и он послужит моей цели, но потом я разочаровался в том, почему я не могу понять, как это сделать с java.time   -  person xenoterracide    schedule 09.06.2016


Ответы (1)


Вы можете использовать Duration для этого:

Duration.of(5, ChronoUnit.SECONDS).toMillis()
person Andrew Rueckert    schedule 08.06.2016
comment
Я только что обнаружил, что toXxx() пришло из [java-9]. - person Jin Kwon; 27.03.2019
comment
@JinKwon эти методы доступны и в Java 8: docs.oracle.com/javase/8/docs/api/java/time/ - person codebox; 29.08.2019