格式为“07-apr-2016”的 Java 日期字符串在转换为 sqldate 时会产生错误的结果
Posted
技术标签:
【中文标题】格式为“07-apr-2016”的 Java 日期字符串在转换为 sqldate 时会产生错误的结果【英文标题】:A Java date string in the format "07-apr-2016" produces wrong result when converted to sqldate 【发布时间】:2016-04-07 13:59:44 【问题描述】: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。
【问题讨论】:
【参考方案1】:根据oracle docs,Y表示周年,y表示年
将您的代码 formatter1 = new SimpleDateFormat("dd-MMM-YYYY");
更改为 formatter1 = new SimpleDateFormat("dd-MMM-yyyy");
【讨论】:
【参考方案2】:你的模式不正确,正确的是dd-MMM-yyyy
而不是dd-MMM-YYYY
【讨论】:
以上是关于格式为“07-apr-2016”的 Java 日期字符串在转换为 sqldate 时会产生错误的结果的主要内容,如果未能解决你的问题,请参考以下文章