我的日期没有为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(utilDate.getTime());
}catch(Exception e){
edate = "Please enter a valid date!";
valid = false;
}
}
date的类型为java.sql.Date。 20-03-2012将转换为2013-08-03
答案 0 :(得分:2)
你正在使用MM-dd-yyyy,但在20-03-2012通过。 20不是有效月份。如果你想先过一天,你应该为我们dd-MM-yyyy。或者,添加月份的健全性检查...如果输入的值是< = 0或> = 13,则拒绝它。
答案 1 :(得分:0)
这很简单。您的日期格式为MM-dd-yyyy
,日期为20-03-2012
。一年只有12个月,而不是20个月。
答案 2 :(得分:0)
20作为月份。将2013年转换为2013年(12 + 8 = 20)。请检查/更改它。
答案 3 :(得分:0)
20-03-2012
不在"MM-dd-yyyy"
中,所以它试图将其解释为第20个月。没有这么一个月,所以你被转移了1年零8个月,因此得到2013-08-03
(3是当天的部分)。