-1

我知道我的问题已经被问过很多次了,但我又写了一遍,因为我无法解决我的问题。

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

我试过这个:

    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

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

代码中的长值是从我解析的远程网站检索的:

    Number value: 33240000

所以我想将此值转换为人类可读的时间,但我不能。

请给我一些建议好吗?

先感谢您!

4

2 回答 2

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

希望它会帮助你。

于 2014-05-17T09:49:56.553 回答
0

我已经解决了“问题”!

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

33240000对应于10:14不是11:11

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

再次抱歉,还是谢谢你的帮助!!!

于 2014-05-17T10:13:17.860 回答