簡體   English   中英

JTextField時間,以HH:mm:ss為單位

[英]JTextField time in HH:mm:ss

我有一個特定任務的估計時間(以分鍾為單位),只需幾分鍾。 如何將其放入HH:mm:ss格式的JFormattedTextField中?

對於小於1440的float,可以使用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方法將只向前一天,您將無法獲得預期的結果。

JFormattedTextField接受Format對象-因此你可以傳遞一個DateFormat ,你得到通過調用DateFormat#getTimeInstance() 您也可以使用SimpleDateFormat HH:mm:ss SimpleDateFormat HH:mm:ss作為格式字符串。

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


如果不限於使用JFormattedTextField ,您還可以考慮使用TimeUnit類(自Java 1.5開始提供)進行自己的格式設置,如此答案所示: 如何在Java中將毫秒轉換為“ X分鍾,x秒”?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM