私はミリ秒の値を持っており、現在のミリ秒の値から 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
ます。
PS
1.私はこの記事を参照しました.彼らはそれがうまくいくと言います.
2.時間の値として何を取得したいのか、つまり07
、使用して値を設定し、 .calをCalendar.HOUR
使用すると表示されるので、もちろんクラスcal.get(Calendar.HOUR)
のオブジェクトです。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();