将毫秒转换为小时,分钟,秒时错误的时间

时间:2014-05-17 09:43:22

标签: java android timestamp java-time

我知道我的问题已被多次询问过,但是我再次写了这个问题,因为我无法解决我的问题。

我希望将以毫秒(我猜是这样)表示的时间转换为小时和分钟。 我知道目标是哪个,我的意思是正确的时间和分钟,但是我无法得到它。

我试过这个:

    long elevenPASTEleven= 33240000;  // 11:11
    Date date = new Date(elevenPASTEleven);
    DateFormat formatter = new SimpleDateFormat("HH:mm:ss:SSS");
    String dateFormatted = formatter.format(date);
    System.out.println(dateFormatted);

,输出为:

    10:14:00:000

我实际上无法理解错误在哪里。

代码中的long值是从远程网站检索的,我解析了这个:

    Number value: 33240000

所以我想把这个值转换成人类可读的时间,但我不能。

你能给我任何建议吗?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用此方法将毫秒转换为小时,分钟和秒

long millies = System.currentTimeMillis();
long hour = TimeUnit.MILLISECONDS.toHours(millies);
long minutes = TimeUnit.MILLISECONDS.toMinutes(millies);
long seconds = TimeUnit.MILLISECONDS.toSeconds(millies);

如果你想格式化你的时间

public String getDurationString(int seconds) 
{
    int hours = seconds / 3600;
    int minutes = (seconds % 3600) / 60;
    seconds = seconds % 60;

    return twoDigitString(hours) + ":" + twoDigitString(minutes) + ":" + twoDigitString(seconds);
}

private String twoDigitString(int number) 
{
    if (number == 0)
    {
       return "00";
    }

    if (number / 10 == 0) 
    {
       return "0" + number;
    }

return String.valueOf(number);
}

希望它会对你有所帮助。

答案 1 :(得分:0)

我已经解决了问题"!

是我没有理解正确的时间。

33240000 对应 10:14 NOT 对应 11:11

我很抱歉问你这个无用的问题,问题出在我的解释上。

再次抱歉,无论如何,谢谢你的帮助!!!