从数据库中取时间值,报错:
java.sql.Timestampcannotbecastto。。。从数据库中取时间值,报错:java.sql.Timestamp cannot be cast to java.lang.Long
1、问题描述
将数据库中的查询到的 timestamp类型的数据,转成 Long类型报错。
String type = Class().getName();
if ("java.sql.Timstamp".equalsIgnoreCase(type)) {
return new Date((Long) result);
}
2、解决⽅案
因为 java.sql.Timestamp是java.util.Date的⼦类;
所以,直接将 java.sql.Timestamp 转换为 java.util.Date 类型即可。
String type = Class().getName();
if ("java.sql.Timestamp".equalsIgnoreCase(type)) {
return (Date)result;
}
或者将数据转成String类型输出:
String type = Class().getName();
// 将 Timestamp 类型转换为 String类型(yyyy-MM-dd HH:mm:ss)
if ("java.sql.Timestamp".equalsIgnoreCase(type)) {
//java.sql.Timestamp处理逻辑
return DateUtil.timeToYmdHmsString((Date)result);
}
DateUtil ⼯具类如下:
public class DateUtil {
private static String defaultYmdHmsPattern = "yyyy-MM-dd HH:mm:ss";
/**
* 将Date转成 String,格式:yyyy-MM-dd HH:mm:ssjava时间日期格式转换
* @param date ⽇期类型
* @return String ⽇期格式的字符串
*/
public static String timeToYmdHmsString(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat(defaultYmdHmsPattern);
return formatter.format(date);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。