我有毫秒值,并希望以hh:mm:ss
格式显示从当前毫秒值中减去 5 分钟的时间。
代码
String str = String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours((cal.getTimeInMillis()-300000)),
TimeUnit.MILLISECONDS.toMinutes(cal.getTimeInMillis()-300000) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(cal.getTimeInMillis()-300000)),
TimeUnit.MILLISECONDS.toSeconds(cal.getTimeInMillis()-300000) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(cal.getTimeInMillis()-300000)));
Toast.makeText(getApplicationContext(), "Alarm Set."+str, Toast.LENGTH_LONG).show()
立即输出
Alarm Set. 386467:25:00
需要输出
Alarm Set. 07:25:00
如您所见minutes
,并且seconds
正在检索安静的权利,但是hours
.
附言
1.我提到了这篇文章。他们说它很好用。但不知道为什么不是我的情况。
2.我确定我想得到什么作为小时值,即07
我已经设置了使用的值Calendar.HOUR
,如果我使用cal.get(Calendar.HOUR)
.cal,它也会显示出来当然是Calendar
类的对象。
替代解决方案
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
String str1 = sdf.format(new Date(cal.getTimeInMillis()-300000));
Toast.makeText(getApplicationContext(), "Alarm Set."+str1, Toast.LENGTH_LONG).show();