从天数转换为毫秒

时间:2011-08-08 09:53:14

标签: java datetime-conversion

我想创建一个将天数转换为毫秒的函数。天数格式存储为0.2444,那么如何将其转换为milliseonds?

8 个答案:

答案 0 :(得分:211)

在我看来,最好的做法是:

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.

答案 1 :(得分:101)

除了其他答案之外,还有TimeUnit类允许您将一个持续时间转换为另一个持续时间。例如,要找出一天组成的毫秒数:

TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); //gives 86400000

请注意,此方法需要long,因此如果您只有一天的一小部分,则必须将其乘以一天内的毫秒数。

答案 2 :(得分:17)

days * 24 * 60 * 60 * 1000不会满足吗?

答案 3 :(得分:10)

24小时= 86400秒= 86400000毫秒。只需将您的号码乘以86400000即可。

答案 4 :(得分:9)

值得一提的是,一旦在4 - 5年内,这种方法可能会产生1秒的误差,因为闰秒(http://www.nist.gov/pml/div688/leapseconds.cfm),并且当天的正确公式将是

(24*60*60 + 1) * 1000

有一个问题Are leap seconds catered for by Calendar?,答案是否定的。

因此,如果您正在设计超级时间相关的软件,请注意这个公式。

答案 5 :(得分:4)

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);
}

答案 6 :(得分:1)

您可以使用此实用程序类-

public class DateUtils
{
    public static final long SECOND_IN_MILLIS = 1000;
    public static final long MINUTE_IN_MILLIS = SECOND_IN_MILLIS * 60;
    public static final long HOUR_IN_MILLIS = MINUTE_IN_MILLIS * 60;
    public static final long DAY_IN_MILLIS = HOUR_IN_MILLIS * 24;
    public static final long WEEK_IN_MILLIS = DAY_IN_MILLIS * 7;
}

如果您使用的是 Android框架,则只需import

下的{em>(也称为DateUtils) >

答案 7 :(得分:0)

int day = 5;
long dayInMilliseconds = day * org.apache.commons.lang.time.DateUtils.MILLIS_PER_DAY