Fork me on GitHub

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

 

posted @   龙凌云端  阅读(6132)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.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()函数的使用说明
点击右上角即可分享
微信分享提示