从数据库中取时间值,报错:java.sql.Timestamp cannot be cast to java.lang.Long
从数据库中取时间值,报错:java.sql.Timestamp cannot be cast to java.lang.Long
1、问题描述
将数据库中的查询到的 timestamp类型的数据,转成 Long类型报错。
String type = result.getClass().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 = result.getClass().getName();
if ("java.sql.Timestamp".equalsIgnoreCase(type)) {
return (Date)result;
}
或者将数据转成String类型输出:
String type = result.getClass().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:ss
* @param date 日期类型
* @return String 日期格式的字符串
*/
public static String timeToYmdHmsString(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat(defaultYmdHmsPattern);
return formatter.format(date);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2020-12-15 23种设计模式之一(单例模式)
2020-12-15 Sublime 安装 JSON格式化 插件
2020-12-15 Notepad++ 安装 JSON格式化 插件
2019-12-15 IPv6地址表示方式
2019-12-15 MySQL truncate()函数的使用说明