一个Java日期字符串,格式为" 07-apr-2016"转换为sqldate时产生错误的结果

时间:2016-04-07 13:59:45

标签: java oracle jdbc

SimpleDateFormat formatter1;        
formatter1 = new SimpleDateFormat("dd-MMM-YYYY");
java.util.Date dt = formatter1.parse(t5.getText()); 
java.sql.Date sqlDate = new java.sql.Date(dt.getTime());
JOptionPane.showMessageDialog(null,cid);
JOptionPane.showMessageDialog(null,bid);
JOptionPane.showMessageDialog(null,t1.getText());
JOptionPane.showMessageDialog(null,""+sqlDate);

我在打印sqlDate时获得了不同的日期。当我输入07-apr-2016时,我得到sqldate中的值为2015-12-27。

2 个答案:

答案 0 :(得分:2)

您的模式不正确,正确的模式为dd-MMM-yyyy而不是dd-MMM-YYYY

答案 1 :(得分:2)

根据oracle docs,Y表示周年,y表示年份

将您的代码formatter1 = new SimpleDateFormat("dd-MMM-YYYY");更改为formatter1 = new SimpleDateFormat("dd-MMM-yyyy");