如何在Java中将Calendar转换为java.sql.Date?

Ale*_*lex 57 java sql calendar

Calendar cal;
String sql = "INSERT INTO ttable (dt) values (?);"
//dt is a dateTime field in ttable

PreparedStatement stmt = connection.prepareStatement(sql);

stmt = setDate(1,cal); //not working

stmt.execute();
stmt.close();
Run Code Online (Sandbox Code Playgroud)

我想将cal转换为Date类型以插入表中.

Jim*_*Jim 119

有一种getTime()方法(不确定为什么它不被称为getDate).

编辑:刚刚意识到你需要一个java.sql.Date.使用的答案之一cal.getTimeInMillis()就是您需要的.


Kur*_*ois 30

你试过cal.getTime()吗?这将获得日期表示.

您可能还想查看javadoc.


Jam*_*hin 26

使用 stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()))


reb*_*mer 10

转换很容易,设置日期和时间有点棘手.这是一个例子:

Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2000);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 1);
cal.set(Calendar.MINUTE, 1);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()));
Run Code Online (Sandbox Code Playgroud)


小智 6

这是将Calendar值转换为Date实例的简单方法.

Calendar C = new GregorianCalendar(1993,9,21);

Date DD = C.getTime();

System.out.println(DD);
Run Code Online (Sandbox Code Playgroud)