Java SimpleDataFormat
我有两张表 表1包含格式为(Java SimpleDataFormat,java,mysql,jtable,simpledateformat,Java,Mysql,Jtable,Simpledateformat,我有两张表 表1包含格式为(EE-MMMMM-dd,yyyy)的日期 表2的值取决于用户在表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 然后将其
EE-MMMMM-dd,yyyy
)的日期
表2的值取决于用户在表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
然后将其查询到数据库以获得结果。使用
SimpleDataFormatter
和日历
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
注意,在上面的输出中,
2月
等于1
,这是因为一个月从0开始
为什么不再次使用SimpleDataFormat
来获得正确的输出?我尝试了不同的方法,但出现了很多错误。对象不能转换为日期,java.lang.String不能转换为java.util.Date等。为什么将日期存储为char
而不是Date
如果要比较日期/时间值,请将其保留为Date
或其他格式-不要尝试比较字符串表示形式,基本上。您将日期格式化为以字符形式存储在db中。这不是一个好主意。这就是我的意思,这个“newDate”是java.util.Date。我需要将其转换为java.sql.Date,因为我将在查询中使用它。@meatno,newDate
的类型是String
,而不是Date
。您可以将此字符串
转换为所需的任何类型。