如何将毫秒转换为天?

时间:2015-03-01 19:12:24

标签: java android

我需要几天的天数。

我正在做,

long days = (millis / (60*60*24*1000)) % 365;

这是真的吗?如果没有请告诉我从毫秒开始的天数。

不建议

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(millis);
int mDay = calendar.get(Calendar.DAY_OF_MONTH);

4 个答案:

答案 0 :(得分:24)

int days = TimeUnit.MILLISECONDS.toDays(miliseconds);

答案 1 :(得分:6)

long days = (millis / (60*60*24*1000))

答案 2 :(得分:1)

很确定这是正确的,但没有模数。

%365表示将其除以365得到余数。

一天有(60 * 60 * 24 * 1000)毫秒。

所以转换:

millis/(60 seconds * 60 minutes * 24 hours * 1000 ms/second)

应该这样做。

答案 3 :(得分:0)

一个工作得很好,但是请检查服务器的标准时间。通常,如果服务器的标准时间不是您期望的标准时间,那么毫秒通常会产生问题,甚至会导致不匹配。代码:

public boolean isAdult(Date userDob, int minimumAge) {
        Calendar cal = Calendar.getInstance();
        long dayNow = TimeUnit.MILLISECONDS.toDays(cal.getTimeInMillis());
        cal.setTime(userDob);
        long dayDob = TimeUnit.MILLISECONDS.toDays(cal.getTimeInMillis());
        long ageInDays = dayNow - dayDob;
        long ageInYears = ageInDays / 365;
        if (ageInYears < minimumAge) {
            return false;
        } else {
            return true;
        }
    }