从几天转换到几毫秒
我想创build一个将天数转换为毫秒的函数。 天格式存储为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类,它允许你将一个持续时间转换为另一个持续时间。 例如,要了解一天中有多less毫秒:
TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); //gives 86400000
请注意,这个方法需要很long
,所以如果你有一小部分时间,你将不得不乘以一天中的毫秒数。
不会days * 24 * 60 * 60 * 1000
就足够了吗?
24小时= 86400秒= 86400000毫秒。 只需要乘以86400000。
值得一提的是,在4-5年内,这种方法可能会出现1秒的错误,因为闰秒( http://www.nist.gov/pml/div688/leapseconds.cfm ),正确的公式那一天将是
(24*60*60 + 1) * 1000
有一个问题是由日历照顾闰秒? 答案是否定的。
所以,如果你正在devise超级时间依赖软件,请注意这个公式。
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); }