我具有毫秒值並且想要顯示時間從hh:mm:ss
格式的當前毫秒值中減去5分鐘。格式化毫秒爲hh:mm:ss格式
代碼
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
。
P.S
1.I簡稱this post。他們說,它的工作原理fine.But不知道爲什麼沒有我的情況。
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();
使用SimpleDateFormat的,因爲我看到有人建議。然後只是格式化你的時間 - 適當的毫米數。 – user1676075
我確實使用了這個,並解決了這個問題。謝謝。但仍然想知道這段代碼中的問題是什麼,因爲別人說這個工作正常。 –
寫入的解決方案不起作用。舉例來說,只是第一個小時的價值。如果當前時間是小時後2秒,它仍然會顯示當前小時,因爲您沒有從小時值中減去任何時間。幾分鐘呢?如果當前的分鐘數是2,而你減去5,那麼它會給你帶來什麼?正確的做法是以毫秒爲單位,減去5分鐘,然後輸出值。這應該是有效的。但即使如此,使用SimpleDateFormat更有意義。 – user1676075