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

Java JTextField时间,单位为HH:mm:ss,java,swing,time,formatting,jformattedtextfield,Java,Swing,Time,Formatting,Jformattedtextfield,我有一个特定任务的估计时间,以分钟为单位。如何将其以HH:mm:ss的格式放入JFormattedTextField中?JFormattedTextField接受格式对象-因此,您可以传递通过调用获得的日期格式。您还可以使用withHH:mm:ss作为格式字符串 另见: 如果您不限于使用 JFrastDeTeXField,您也可以考虑使用类自格式化,java 1.5可用,如此答案所示:< /P> < P>浮点< 1440,您可以绕过日历< /代码>和 DateFormat < /C> > f

我有一个特定任务的估计时间,以分钟为单位。如何将其以
HH:mm:ss
的格式放入JFormattedTextField中?

JFormattedTextField
接受
格式
对象-因此,您可以传递通过调用获得的
日期格式
。您还可以使用with
HH:mm:ss
作为格式字符串

另见:



如果您不限于使用<代码> JFrastDeTeXField,您也可以考虑使用类自格式化,java 1.5可用,如此答案所示:< /P> < P>浮点< 1440,您可以绕过<代码>日历< /代码>和<代码> DateFormat < /C> >

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小时),日历方法将只向前移动一天,您将无法获得预期的结果。

您尝试了什么?你看过教程了吗?这听起来更适合
JProgressBar
@dah。您是否有一个可以使用的基本
日期
,即您是否有完成任务所需的时间,比如说,5分钟?没有。它只以十进制分钟记录。我想我只是将分钟转换成秒再转换成毫秒,然后在日期构造函数中使用它,然后使用你的方法。@dah我认为这行不通,您仍然需要使用一个基本的
Date
对象—距离5分钟这样的值只有几毫秒的距离,您只能得到一个相对于纪元开始的时间(1970年1月1日,00:00:00 GMT)。请参阅我编辑的答案,了解如何使用
TimeUnit
类以您想要的方式轻松地对其进行格式化。距离历元的5分钟不等于距离x的5分钟吗。