2015-11-29 43 views
0

大家好我正在使用的表單上使用JDateChooser我想獲取用戶輸入的日期值。在將變量的值存入變量後,是否有任何方法可以在輸入日期之後添加日期?這是我在傳遞的日期字符串變量代碼:從JDateChooser使用Java添加30天的netbeans

String dates =((JTextField)date.getDateEditor().getUiComponent()).getText(); 

我的問題是如何傳遞的日期到一個變量,我可以能夠在其上增加一個額外的天? 請幫我真的需要這個爲我的項目。

+0

怎麼樣參照這個視頻教程 的https: //www.youtube.com/watch?v=q1-ttUrRhl0 – AVI

回答

0

要使用日期值操作String,首先需要使用SimpleDateFormat轉換爲Date,然後您可以使用Calendar執行操作。

SimpleDateFormat datefmt = new SimpleDateFormat("MM/dd/yyyy"); // Or format you're using 
Date date = datefmt.parse(dates); 

Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 
cal.add(Calendar.DAY_OF_MONTH, 30); // Add 30 days 
Date futureDate = cal.getTime(); 

如果你需要插入值到數據庫中,你當然會使用PreparedStatement,所以你需要一個Timestamp代替:

// From Date 
Timestamp futureTimestamp = new Timestamp(futureDate.getTime()); 

// Directly from Calendar 
Timestamp futureTimestamp = new Timestamp(cal.getTimeInMillis()); 
+0

我是否需要將它磨光並試着捕捉聲明?當我鍵入Date today = datefmt.parse(日期);它給了我一個錯誤,並給我一個建議來解決它嘗試和捕獲? – pinkywest

+0

這個或添加到你的方法的「拋出」。由您決定如何處理不良日期值。如果字符串在這一點上永遠不會壞(早些時候強制執行),您應該執行'try-catch'並重新拋出IllegalArgumentException異常。 – Andreas

+0

dates =((JTextField)date.getDateEditor()。getUiComponent())。getText(); SimpleDateFormat datefmt = new SimpleDateFormat(「MM/dd/yyyy」); 今日日期= datefmt.parse(日期); 日曆cal = Calendar.getInstance(); cal.setTime(today); cal.setTime(today); cal.add(Calendar.DAY_OF_MONTH,30); //添加30天 Date futureDate = cal.getTime(); JOptionPane.showMessageDialog(null,futureDate); – pinkywest