Подтвердить что ты не робот

Конвертировать из дней в миллисекунды

Я хочу создать функцию, которая преобразует дни в миллисекунды. Формат дней хранится как 0.2444, поэтому как преобразовать его в миллисекунды?

4b9b3361

Ответ 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);
}