这里有很多讨论,但我所尝试的并不奏效。直到我的表格中我将日期存储为string
,但我认为这不是正确的方法......所以我创建了一个表格:
CREATE TABLE "TRANSACTIONS" (
"date" DATETIME,
...
}
我想将日期存储为2016-11-04 10:50
,因此我使用:
String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime());
我使用prepared Statements
在DB中插入记录,当我尝试这样做时:
stm.setDate(1, timeStamp);
我得到String cannot be converted to Date
。所以我将其转换为DATE
String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime());
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date datee = formatter.parse(timeStamp);
然后我得到java.util.Date cannot be converted to java.sql.Date
所以我尝试了这个:
String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime());
java.sql.Date sqlDate = java.sql.Date.valueOf(timeStamp);
当我运行它时,我得到java.lang.IllegalArgumentException
答案 0 :(得分:0)
java.sql.Date表示日期,而不是日期和时间。
您收到此错误是因为您正在传递any
并抛出"yyyy-MM-dd HH:mm"
java.lang.IllegalArgumentException
`
这将毫无例外地运行。
对于您所需的格式,您应该使用 String d1 = "2016-10-11";
java.sql.Date d = null ;
d.valueOf(date1);
System.out.println(d.valueOf(date1));
java.sql.Timestamp
输出 - String date1 = "2016-10-11 10:45";
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm");
java.util.Date d2 = sm.parse(date1);
Timestamp time = new Timestamp(d2.getTime());
System.out.println(time);