作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个需要以下输入参数的存储过程 -
PROCEDURE `Report_Publishing`(p_StartDate datetime, p_EndDate dateTime, p_Action varchar(15))
从前端我得到以下格式的开始和结束日期 -以字符串“2017-03-15”开始
,以字符串“2017-04-17”结束
,
以下是一段代码,将开始日期和结束日期转换为存储过程所需的格式-
import java.sql.CallableStatement;
import java.sql.Connection;
import java.util.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.text.SimpleDateFormat;
public List<PublishReportDto> getExport(String start, String end, String action, Connection conn, String sql) {
List<PublishReportDto> publishList = null;
try {
CallableStatement cs = conn.prepareCall(sql);
start += " 00:00:00";
end += " 00:00:00";
Date startDate = null;
Date endDate = null;
try {
startDate = (Date) new SimpleDateFormat("yyyy-MM-dd").parse(start);
endDate = (Date) new SimpleDateFormat("yyyy-MM-dd").parse(end);
} catch (ParseException e) {
e.printStackTrace();
}
cs.setDate(1,(java.sql.Date) startDate);
cs.setDate(2,(java.sql.Date) endDate);
cs.setString(3, action);
cs.registerOutParameter(1, java.sql.Types.DATE);
cs.registerOutParameter(2, java.sql.Types.DATE);
cs.registerOutParameter(3, java.sql.Types.VARCHAR);
ResultSet rs = cs.executeQuery();
我收到以下异常 -
Exception in thread "main" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
修改 -
已替换 -
1. import java.sql.Date
和 import java.util.Date;
2.
cs.setDate(1,startDate);
cs.setDate(2,endDate);
通过
cs.setDate(1,(java.sql.Date) startDate);
cs.setDate(2,(java.sql.Date) endDate);
现在我得到了-
Exception in thread "main" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
有人可以帮帮我吗?
最佳答案
你可以尝试在你的代码中实现这样的东西:
String string = "January 2, 2010";
DateFormat format = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH);
Date date = format.parse(string);
System.out.println(date);
Date 将解析您输入的字符串,然后它会为您提供正确的日期希望这对您有所帮助:)
关于迄今为止的 Java 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376847/
我在将一列转换为日期时遇到一些问题。 我希望将'01/02/98'(日、月、年)转换为'1998-02-01'(年、月、日). 以及如何将 '98' 转换为 1998。 最佳答案 I want thi
我正在从旧系统转换许多晦涩的日期格式。日期作为字符串解包/处理并转换为 ISO 8601 格式。 这个特定的函数尝试将 YYMMDD0F 转换为 YYYYMMDD ——函数名称说明了一切。从 2000
我是一名优秀的程序员,十分优秀!