zoukankan      html  css  js  c++  java
  • 项目总结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

  • 相关阅读:
    锻造软件需求人员的六大要素
    一名IT从业者的英语口语能力成长路径
    软键盘android:windowSoftInputMode属性详解
    Linux CentOS下shell显示-bash-4.1$ 不显示用户名和主机名的解决方法
    Cent OS 常用 命令
    安装服务器pve虚拟系统(可以通过web管理物理机集群资源与虚拟机)
    win10系统绑定本地IP和mac地址
    苹果MAC OS查看MAC地址及修改ip
    CentOS7 配置阿里云yum源,vim编辑器,tab自动补全
    element的el-tabs控制,以及el-select 多选默认值
  • 原文地址:https://www.cnblogs.com/wobuchifanqie/p/11887695.html
Copyright © 2011-2022 走看看