JTextField时间以HH为单位:mm:ss
我估计在一个浮点数中,在几分钟内完成特定任务所需的时间。 如何将它放在JH HH:mm:ss
格式的JFormattedTextField中?
JFormattedTextField
接受一个Format
对象 – 您可以通过调用DateFormat#getTimeInstance()
传递一个DateFormat
。 您也可以使用带有HH:mm:ss
的SimpleDateFormat
作为格式字符串。
另见: http : //download.oracle.com/javase/tutorial/uiswing/components/formattedtextfield.html#format
如果您不限制使用JFormattedTextField
,您可能还会考虑使用自Java 1.5以来可用的TimeUnit
类进行自己的格式化,如下面的答案所示: 如何在Java中将毫秒转换为“X分钟,x秒”?
对于float <1440,您可以使用Calendar
和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方法只会转发一天,您将无法获得预期结果。