zoukankan      html  css  js  c++  java
  • 从数据库中取时间值,报错: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);
        }
    }
  • 相关阅读:
    优化Hibernate所鼓励的7大措施:
    Java未赋值变量的默认初始值
    年轻代
    JVM介绍
    Java锁的种类以及辨析
    java语言复制数组的四种方法
    static和final
    抽象函数抽象类
    try catch finally
    九大内置对象
  • 原文地址:https://www.cnblogs.com/miracle-luna/p/15694727.html
Copyright © 2011-2022 走看看