私のアプリでは、実行を一定時間一時停止するオプションがあります。実行が再開される時間を秒単位で表示したいのですが、時間文字列をシステム設定に従ってフォーマットする必要があります。これは私が思いついたコードです:
long millis = getResumeTime();
String timeString;
timeString = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM).format(millis);
これにより、秒を含む書式設定された文字列が生成されますが、設定で 24 時間形式を設定していても、AM/PM 形式の時刻が返されます。システム トレイの時刻は 24 時間形式を使用して正しくフォーマットされているため、さらに面白いです。
私は次のように DateFormat.getTimeFormat を使用してみました:
long millis = getResumeTime();
String timeString;
java.text.DateFormat df = android.text.format.DateFormat.getTimeFormat(this);
timeString = df.format(millis);
しかし、結果の文字列には秒が含まれず、それらを含める方法がわかりません。
このコードを Android 4.2 エミュレーターで実行しています。ここで何か不足していますか?SimpleDateFormat は 12/24 時間設定を認識しませんか? そうでない場合、システム形式で時間 (時間、分、秒を含む) の文字列表現を取得するにはどうすればよいですか?