2

私はミリ秒の値を持っており、現在のミリ秒の値から 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();
4

3 に答える 3