JTextField时间,单位为HH:mm:ss

时间:2011-05-06 17:27:27

标签: java swing time formatting jformattedtextfield

我有一个特定任务所需的估计时间,以分钟为单位。如何将其放在J HH:mm:ss

格式的JFormattedTextField中

2 个答案:

答案 0 :(得分:6)

对于浮动< 1440你可以使用CalendarDateFormat

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 :(得分:4)

JFormattedTextField接受Format个对象 - 您可以通过调用DateFormat#getTimeInstance()传递DateFormat。您也可以使用SimpleDateFormat HH:mm:ss作为格式字符串。

另见: http://download.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html#format


如果您不限制使用JFormattedTextField,您可能还会考虑使用自Java 1.5以来可用的TimeUnit类进行自己的格式化,如下面的答案所示:{{3} }

相关问题