从天转换为毫秒

102

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

我希望创建一个能够将天数转换为毫秒的函数。天数使用0.2444格式进行存储,因此需要进行转换。

10
一天有多少小时?一小时有多少分钟?一分钟有多少秒?一秒有多少毫秒? - Rup
1
0.2444代表什么意思? - jmj
6
请注意,有些日子是25小时,有些是23小时,甚至有些是23小时59分59秒(闰秒)。 - giraff
@Stephen:我稍微有些不同意,这取决于它的使用方式。如果它被添加到特定的一天中,那么0.5天可能不是12个小时。 - giraff
1
@giraff - 一个将特定日期的一部分转换为毫秒的函数必须带有两个参数或隐式参数(例如“今天”)。我很难相信这是OP应用程序真正需要的。 (例如,没有理智的人会要求用户在考虑特定日期中的小时数的情况下输入一天的一部分到时间表中。现在我们不知道OP的应用程序是什么,但是...) - Stephen C
显示剩余4条评论
8个回答

317

在我看来,最佳实践是:

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.

9
不,这个答案不应该被接受,因为DAYS.toMillis只接受long类型的参数,而OP使用了double类型的天数。 - Ľubomír
5
这个答案是大多数来到这里的人所寻找的答案,但不是针对OP的答案。 - OsaSoft
不是最佳实践。这是一种简单的方式。 - Dumbo

126

除了其他答案之外,还有TimeUnit类,它可以让您将一个时间段转换为另一个时间段。例如,要查找一天包含多少毫秒:

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

请注意,此方法需要一个long参数,因此如果你有不足一天的时间,你需要将它乘以一天的毫秒数。


25

使用 days * 24 * 60 * 60 * 1000 不就可以了吗?


2
他可能希望它作为一个长整型,因此你可能需要在最后将其从双精度浮点数四舍五入。 - Rup

13

2
如果有人感兴趣的话,2016年将会有一个闰秒。 - Rustem Mustafin

13

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


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

3
您可以使用这个实用类 -
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)即可。


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

1
最好解释一下你的答案意思。请花几分钟说明这段代码是如何工作的。 - DaFois

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接