如何在Android中获取一天中的小时数毫秒

时间:2015-02-25 19:45:47

标签: java android time

我在网上寻找答案,但没有人回答我想要的答案。假设我距离纪元System.getCurrentMillis()有一毫秒。我需要知道所述millis的一天中的小时,只是小时,从00到24,理想情况下不是字符串,而是int。

有没有简单的方法来实现这一目标。目前我正在使用SimpleDateFormat("HH")来获取dateFormat字符串,但我确信必须有更好的做法。

事先谢谢

2 个答案:

答案 0 :(得分:10)

Calendar time = Calendar.getInstance();
time.setTimeInMillis(milliseconds);
time.get(Calendar.HOUR_OF_DAY)

答案 1 :(得分:0)

为那些不想使用Calendar构造函数的人提供另一种有效的解决方案。注意:这仅适用于时区偏移= 0!

//extracts Hour Of Day from Calendar milliseconds (TimeZone = 0)
public static int extractHourOfDayFromMS(long ms) {
    int millis = (int) (ms % 86400000);

    if (millis < 0) {
        millis += 86400000;
    }
    while (millis < 0) {
        millis += 86400000;
    }
    while (millis >= 86400000) {
        millis -= 86400000;
    }
    millis /= (1000*60*60);
    return millis % 24;
}

此代码改编自 GregorianCalendar.fullFieldsCalc()函数。