Java中的日期未正确转换为sql
我的日期没有正确格式化为sql,你知道为什么吗Java中的日期未正确转换为sql,java,sql,Java,Sql,我的日期没有正确格式化为sql,你知道为什么吗 public void vDate(String s) { try{ SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); java.util.Date utilDate = (Date)dateFormat.parse(s); date = new java.sql.Date(uti
public void vDate(String s) {
try{
SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");
java.util.Date utilDate = (Date)dateFormat.parse(s);
date = new java.sql.Date(utilDate.getTime());
}catch(Exception e){
edate = "Please enter a valid date!";
valid = false;
}
}
日期的类型为java.sql.date。
将2012年3月20日转换为2013年8月03日您使用的是MM dd yyyy,但在2012年3月20日传递。20不是有效月份。如果你想先度过这一天,你应该改为我们dd MM yyyy。或者,添加当月的健全性检查。。。如果输入值为=13,则拒绝它。这很简单。您的日期格式为
MM dd yyyy
,日期为20-03-2012
。一年中只有12个月,而不是20个月。20被视为一个月,因为您提供了SDF。将年份转换为2013年(12+8=20)。请检查/更改它。20-03-2012
不在“MM dd yyyy”
中,因此它试图将其解释为20个月。没有这样一个月,所以你会被移动1年零8个月,因此你会得到2013-08-03
(3是日部分)。奇怪的是,下面没有提到:如果输入是20-03-2012,请使用dd MM yyyy
作为SimpleDataFormat()格式字符串。