2015-02-05 70 views
0

我有兩個2 JTables。Java SimpleDateFormat

TABLE_1包含被格式化爲(EE - MMMMM dd, yyyy

TABLE_2的價值取決於什麼用戶點擊TABLE_1日期。通常,來自數據庫的日期格式是(yyyy-dd-MM)我將其格式化爲(EE - MMMMM dd, yyyy),看起來有點不錯。

我的問題是,我想將其格式化爲(yyyy-dd-MM)以使查詢生效。

我想這一點:

Table_1.getValueAt(Table_1.getSelectedRow(),0) - > Thu - Feb 5, 2015 

回到這一點:

2015-5-2 

然後它查詢到數據庫帶來的效果。

+0

爲什麼不再使用'SimpleDateFormat'來獲得正確的輸出? – Steffen 2015-02-05 15:13:56

+0

我試過不同的方法,並得到很多erros。對象不能轉換爲Date,java.lang.String不能轉換爲java.util.Date等等。 – meatno 2015-02-05 15:15:22

+2

爲什麼你把日期存儲爲'char'而不是'date' – Jens 2015-02-05 15:15:33

回答

1

使用SimpleDateFormatterCalendar

String date = "Thu-Feb 5, 2015"; 

SimpleDateFormat sdf = new SimpleDateFormat("EEE-MMM d, yyyy"); 

Calendar cal = Calendar.getInstance(); 
cal.setTime(sdf.parse(date)); 

String newDate = cal.get(Calendar.YEAR) + "-" + cal.get(Calendar.DAY_OF_MONTH) + "-" + cal.get(Calendar.MONTH); 

System.out.println(date); 
System.out.println(newDate); 

輸出

Thu-Feb 5, 2015 
2015-5-1 

觀察February在上面的輸出等於1,這是因爲從本月開始0

+0

而那個'newDate'是一個java.util.Date。我需要將它轉換爲java.sql.Date,因爲我將在查詢中使用它。 – meatno 2015-02-05 23:08:22

+0

@meatno,'newDate'的類型是'String',而不是'Date'。你可以將這個'String'轉換爲你想要的任何類型。 – 2015-02-06 08:23:25