以java.sql.Date格式获取当前日期

gio*_*ozh 49 java jdbc java.util.date

我需要将当前日期添加到JDBC调用的预准备语句中.我需要以类似的格式添加日期yyyy/MM/dd.

我试过了

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date date = new Date();
pstm.setDate(6, (java.sql.Date) date);
Run Code Online (Sandbox Code Playgroud)

但我有这个错误:

threw exception
java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
Run Code Online (Sandbox Code Playgroud)

有没有办法获得java.sql.Date具有相同格式的对象?

rge*_*man 73

A java.util.Date不是java.sql.Date.这是相反的方式.A java.sql.Date是一个java.util.Date.

你需要java.sql.Date通过使用一个可以提供的构造函数long将它转换为a java.util.Date.

java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
Run Code Online (Sandbox Code Playgroud)

  • 为简单起见:java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis()); (9认同)
  • @Yster 问题已经有当前日期:`Date date = new Date();`。这是关于将`java.util.Date` 转换为`java.sql.Date`。 (2认同)
  • downvote-不知道utilDate是什么,或者代码打算如何编译。不清楚。 (2认同)
  • @bharal 命名约定非常清楚“sqlDate”和“utilDate”(`java.sql.Date`,`java.util.Date`)。代码在任何存在名为“utilDate”的 `java.util.Date` 的块中编译。问题是关于转换日期,这意味着一个日期已经存在。 (2认同)
  • @AhmedElbatt 但答案仍然有效。问题询问如何将一个类转换为另一个类。 (2认同)

kel*_*a88 33

只需一行:

java.sql.Date date = new java.sql.Date(Calendar.getInstance().getTime().getTime());
Run Code Online (Sandbox Code Playgroud)

  • 你需要的时间`java.sql.Time time = new java.sql.Time(Calendar.getInstance().getTime().getTime());` (2认同)

Ama*_*ala 16

new java.sql.Date(Calendar.getInstance().getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)


Eth*_*ner 14

这些都太长了.

只需使用:

new Date(System.currentTimeMillis())
Run Code Online (Sandbox Code Playgroud)


pam*_*voy 5

为了获取“当前日期”(如今天的日期),您可以使用LocalDate.now()它并将其传递到java.sql.Date方法中valueOf(LocalDate)

import java.sql.Date;
...
Date date = Date.valueOf(LocalDate.now());
Run Code Online (Sandbox Code Playgroud)