从几天转换到几毫秒

我想创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); }