我知道我的问题已被多次询问过,但是我再次写了这个问题,因为我无法解决我的问题。
我希望将以毫秒(我猜是这样)表示的时间转换为小时和分钟。 我知道目标是哪个,我的意思是正确的时间和分钟,但是我无法得到它。
我试过这个:
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
所以我想把这个值转换成人类可读的时间,但我不能。
你能给我任何建议吗?
提前谢谢!
答案 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 。
我很抱歉问你这个无用的问题,问题出在我的解释上。
再次抱歉,无论如何,谢谢你的帮助!!!