• 项目总结45:由java.util.Date类型引起的前端日期展示异常问题解决


    项目总结45:由java.util.Date类型引起的前端日期展示异常问题解决

    问题:

      项目中碰到一个问题,Mysql数据库中读取的date数据,再前端通过Bootstrap展示,总是如下格式

     

       后端实体类,也对时间格式进行了处理,如下:

    package com.hs.dao.entity.lop.function;
    
    import com.fasterxml.jackson.annotation.JsonFormat;
    import java.util.Date;
    
    public class FunctionZrxReview {
    
        private static final long serialVersionUID = 1L;
    
        @DateTimeFormat(pattern = "yyyy-MM-dd") //入参
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") //出参
        private Date time; // 时间
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") //出参
        public Date getTime() {
            return this.time;
        }
    
        public void setTime(Date time) {
            this.time = time;
        }
        
        //other code is ignored.....
    
    }

     排查:

      一开始一位是时间格式没有进行合适的处理,尝试了各种方式,都不行,最后发现问题出在java.util.Date类型上,将java.util.Date;改成 java.sql.Date,问题迎刃而解;

    总结:java.util.Date和java.sql.Date的区别及应用

    java.util.Date 就是在除了SQL语句的情况下面使用
    java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分
    它都有getTime方法返回毫秒数,自然就可以直接构建
    java.util.Date d = new java.util.Date(sqlDate.getTime());
    ...

    --------------------------------------------------------------------------------
    java.util.Date 是 java.sql.Date 的父类(注意拼写)
    前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他
    后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date
    转换是
    java.sql.Date date=new Java.sql.Date();
    java.util.Date d=new java.util.Date (date.getTime());
    反过来是一样的

    --------------------------------------------------------------------------------
    继承关系:java.lang.Object --》 java.util.Date --》 java.sql.Date
    具体的转换关系就是java.util.Date d=new java.util.Date (new Java.sql.Date());

    --------------------------------------------------------------------------------
    sql.date,一般是在数据库的时间字段,util.date一般是日常日期字段

    --------------------------------------------------------------------------------
    java.sql.Date主要是用于sql中的!
    而java.util.Date用语一般的环境下都行!

    参考资料:

    1-https://www.cnblogs.com/IamThat/p/3264234.html

  • 相关阅读:
    启用和配置 FILESTREAM
    SQL SERVER的锁机制(四)——概述(各种事务隔离级别发生的影响)
    SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)
    系统性能测试 IO--AIX
    存储前端
    Markdown的css样式源码
    Typora +google + Markdown Here 公众号
    存储学习
    ChsLLVMDocs
    Parallel Database for OLTP and OLAP
  • 原文地址:https://www.cnblogs.com/wobuchifanqie/p/11887695.html
Copyright © 2020-2023  润新知