SpringBoot获取数据库datetime类型数据在前端显示为时间戳问题及解决方案

2022年6月11日12:47:46

SpringBoot获取数据库datetime类型数据在前端显示为时间戳问题及解决方案

问题描述

最近在做一个SpringBoot项目,数据库使用的是MySQL 5.7,在传递日期时间数据时出现了异常,数据库中的日期显示格式为"yy-mm-dd hh:mm:ss",而传到前端显示的则是一长串数字,即时间戳(即从1970年1月1日00:00:00 GMT标准基准时间到当前时间经过的毫秒数)
SpringBoot获取数据库datetime类型数据在前端显示为时间戳问题及解决方案

解决方法1

java有两种Date类型,一种是import java.util.Date,另一种是import java.sql.Date,把util类型的Date转换为sql的Date就行了。代码如下:

    java.util.Date utilDate = user.getDate();
    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
    user.setDate(sqlDate);

因为是User类中定义的是util的Date,所以会把数据库中sql的Date变成时间戳
SpringBoot获取数据库datetime类型数据在前端显示为时间戳问题及解决方案

解决方法2

查看出现错误的时间日期所在的定义类,不出意外的话它调用的是import java.util.Date,把util改成sql就完事了
SpringBoot获取数据库datetime类型数据在前端显示为时间戳问题及解决方案
SpringBoot获取数据库datetime类型数据在前端显示为时间戳问题及解决方案

一点小细节和拓展

如果使用util转sql的Date,需要保证只有年月日,时间的时分秒必须为零,否则无法转换

所以这个问题的根本原因是什么呢?

我个人猜测应该是Generator生成逆向工程时类中默认生成的就是java.util.Date,导致出现时间戳问题

ok,就这样,最近也在忙着找工作,愈发感觉到人的记忆力确实不如烂笔头,写博客记录是一个非常好的习惯,希望可以保持下去吧。

  • 作者:꧁༺叶良辰༻꧂
  • 原文链接:https://blog.csdn.net/weixin_44752465/article/details/123285512
    更新时间:2022年6月11日12:47:46 ,共 728 字。