从数据库中取时间值,报错: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.Timestampjava.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); } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM