我有一個包含HH的窗口:在它毫米時間文本字段,在24小時格式如何驗證來自Swing文本框的小時和分鐘?
我需要驗證,如果用戶輸入任何非有效的小時數,如28:00,99:00,24 :01。
什麼是最好和更簡單的方法來做到這一點?
下面的一些代碼是什麼目前正在做的工作錯誤,並在日期解析錯誤。 今天我得到一個隨機小時,用戶在該文本字段中打99:99。
此代碼不是我的,但我得解決它。
我一直堅持使用它,試圖驗證爲一個字符串是無用的,我無法找到一個很好的方式使它成爲一個日期,而不必把年,月等等。
請忘記返回-1而不是拋出一個異常,這是舊的代碼,這是不能改變的。
,以幫助理解:
Statics.hF2 = SimpleDateFormat的(HH:MM)
this.cmpHora.getText()=與值
Statics.df_ddmmyy領域=另一日期格式
Statics.m2ms =轉換分鐘毫秒
// CODE
public long getDataEmLong()
{
try
{
Calendar hour= Calendar.getInstance();
new GregorianCalendar().
hour.setTime(Statics.hF2.parse(this.cmpHora.getText()));
return Statics.df_ddmmyy.parse(this.cmpData.getText()).getTime() + Statics.m2ms(hour.get(Calendar.HOUR_OF_DAY) * 60) + Statics.m2ms(hour.get(Calendar.MINUTE));
} catch (Exception e)
{
e.printStackTrace();
return -1;
}
}
乾杯!
你的`validateNumber()`函數被破壞了。如果傳入「-1」,結果將與錯誤情況相同。這不是您使用它的方式的問題,但如果沒有更好的名稱或文檔,可能會在將來導致問題。 – unholysampler 2011-02-01 19:04:51