Я хочу создать функцию, которая преобразует дни в миллисекунды. Формат дней хранится как 0.2444, поэтому как преобразовать его в миллисекунды?
Конвертировать из дней в миллисекунды
Ответ 1
Лучшая практика для этого, на мой взгляд, заключается в следующем:
TimeUnit.DAYS.toMillis(1); // 1 day to milliseconds.
TimeUnit.MINUTES.toMillis(23); // 23 minutes to milliseconds.
TimeUnit.HOURS.toMillis(4); // 4 hours to milliseconds.
TimeUnit.SECONDS.toMillis(96); // 96 seconds to milliseconds.
Ответ 2
В дополнение к другим ответам существует также класс TimeUnit, который позволяет вам конвертировать одну продолжительность времени в другую. Например, чтобы узнать, сколько миллисекунд составляет один день:
TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); //gives 86400000
Обратите внимание, что этот метод принимает long
, поэтому, если у вас есть доля дня, вам придется умножить его на количество миллисекунд за один день.
Ответ 3
Не будет days * 24 * 60 * 60 * 1000
?
Ответ 4
24 часа = 86400 секунд = 86400000 миллисекунд. Просто умножьте свой номер на 86400000.
Ответ 5
Важно отметить, что один раз в 4-5 лет этот метод может дать 1 секунду ошибки, из-за прыжка-секунды (http://www.nist.gov/pml/div688/leapseconds.cfm), и правильная формула для этого дня была бы
(24*60*60 + 1) * 1000
Возникает вопрос Есть ли секундомер для календаря?, а ответ - нет.
Итак, если вы разрабатываете сверхвременное программное обеспечение, будьте осторожны с этой формулой.
Ответ 6
public static double toMilliSeconds(double day)
{
return day * 24 * 60 * 60 * 1000;
}
или как long
:
public static long toMilliSeconds(double day)
{
return (long) (day * 24 * 60 * 60 * 1000);
}