Java 将字符串转换为日期格式 (yyyy-MM-dd) 未给出正确的结果



我在spring-boot&休眠:

@Entity
public class Flight extends AbstractEntity{
private Date dateOfDeparture;
private Timestamp estimatedDepartureTime;

我的控制器:(从jsp.page获取departureDate departureDate是文本类型(

@RequestMapping("findFlights") 
public String findFlight( @RequestParam("departureDate") String d3, ModelMap  modelMap) { 
DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
Date d11 = null;
try {
d11 = df.parse(d3);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} 

java.sql.Date dateOfDeparture =  new java.sql.Date(d11.getTime());
List<Flight> flights =
flightRepository.findFlightsByDate(dateOfDeparture);
modelMap.addAttribute("flights", flights); 
return "displayFlights";

我的存储库:

@Query("from Flight where dateOfDeparture =:dateOfDeparture")
List<Flight> findFlightsByDate(@Param("dateOfDeparture") Date departureDate);

我没有得到任何结果。出发日期是java.util.Date类型还是java.sql.Date 类型

无法理解问题感谢您的帮助

@Entity
public class Flight extends AbstractEntity{
private java.sql.Date dateOfDeparture;
private java.sql.Timestamp estimatedDepartureTime;

考虑到我们有以下实用方法:

@RequestMapping("findFlights")
public String findFlight( @RequestParam("departureDate") String d3, ModelMap modelMap) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date d11 = null;
try {
d11 = df.parse(d3);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
java.sql.Date dateOfDeparture = df.format(d11);
List<Flight> flights =
flightRepository.findFlightsByDate(dateOfDeparture);
modelMap.addAttribute("flights", flights);
return "displayFlights";
}

private final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");

private final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

private java.sql.Date parseDate(String date) {
try {
return new Date(DATE_FORMAT.parse(date).getTime());
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}

private java.sql.Timestamp parseTimestamp(String timestamp) {
try {
return new Timestamp(DATE_TIME_FORMAT.parse(timestamp).getTime());
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}