我想创建一个函数,将天数转换成毫秒。天数的格式以0.2444存储,那么如何将其转换为毫秒?
我希望创建一个能够将天数转换为毫秒的函数。天数使用0.2444格式进行存储,因此需要进行转换。我想创建一个函数,将天数转换成毫秒。天数的格式以0.2444存储,那么如何将其转换为毫秒?
我希望创建一个能够将天数转换为毫秒的函数。天数使用0.2444格式进行存储,因此需要进行转换。在我看来,最佳实践是:
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.
除了其他答案之外,还有TimeUnit类,它可以让您将一个时间段转换为另一个时间段。例如,要查找一天包含多少毫秒:
TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); //gives 86400000
请注意,此方法需要一个long
参数,因此如果你有不足一天的时间,你需要将它乘以一天的毫秒数。
使用 days * 24 * 60 * 60 * 1000
不就可以了吗?
需要注意的是,由于闰秒(http://www.nist.gov/pml/div688/leapseconds.cfm)的存在,每4-5年此方法可能会出现1秒误差,因此当天的正确计算公式应为:
(24*60*60 + 1) * 1000
有一个问题日历是否考虑闰秒?,答案是否定的。
因此,如果您正在设计超级时间相关的软件,请注意这个公式。
24小时 = 86400秒 = 86400000毫秒。只需将您的数字乘以86400000即可。
public static double toMilliSeconds(double day)
{
return day * 24 * 60 * 60 * 1000;
}
长整型
:public static long toMilliSeconds(double day)
{
return (long) (day * 24 * 60 * 60 * 1000);
}
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 框架,那么只需在 android.text.format
包下 import
它(也称为 DateUtils
)即可。
int day = 5;
long dayInMilliseconds = day * org.apache.commons.lang.time.DateUtils.MILLIS_PER_DAY