2015-02-05 34 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