我有一个特定任务所需的估计时间(以分钟为单位)。我怎样才能把它放在 JFormattedTextField 的格式中HH:mm:ss
?
问问题
12933 次
2 回答
6
对于 float < 1440,您可以使用Calendar
and来解决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 方法只会向前一天,您不会得到预期的结果。
于 2011-05-06T18:22:15.820 回答
4
JFormattedTextField
接受一个Format
对象 - 因此DateFormat
您可以通过调用DateFormat#getTimeInstance()
. 您也可以使用SimpleDateFormat
withHH:mm:ss
作为格式字符串。
另请参阅:http: //download.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html#format
如果您不限于使用 a JFormattedTextField
,您还可以考虑使用自 Java 1.5 起可用的类进行自己的格式化TimeUnit
,如以下答案所示:How to convert Milliseconds to "X mins, x seconds" in Java?
于 2011-05-06T17:41:03.640 回答