フロートで特定のタスクにかかる推定時間(分)があります。これをJFormattedTextFieldに次の形式で配置するにはどうすればよいHH:mm:ss
ですか?
12933 次
2 に答える
6
Calendar
フロートが1440未満の場合は、とで回避できますDateFormat
。
float minutes = 100.5f; // 1:40:30
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.add(Calendar.MINUTE, (int) minutes);
c.add(Calendar.SECOND, (int) ((minutes % (int) minutes) * 60));
final Date date = c.getTime();
Format timeFormat = new SimpleDateFormat("HH:mm:ss");
JFormattedTextField input = new JFormattedTextField(timeFormat);
input.setValue(date);
ただし、フロートが1440(24時間)以上の場合、Calendarメソッドは1日だけ転送され、期待される結果が得られないことに注意してください。
于 2011-05-06T18:22:15.820 に答える
4
JFormattedTextField
はオブジェクトを受け入れます。つまり、 を呼び出して取得した をFormat
渡すことができます。フォーマット文字列としてaを使用することもできます。DateFormat
DateFormat#getTimeInstance()
SimpleDateFormat
HH:mm:ss
参照: http://download.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html#format
の使用に制限されていない場合は、次の回答に示すように、Java 1.5 以降で使用可能なクラスJFormattedTextField
を使用して独自の書式設定を行うことを検討することもできます: How to convert Milliseconds to "X mins, x seconds" in Java?TimeUnit
于 2011-05-06T17:41:03.640 に答える