SpringBoot获取数据库datetime类型数据在前端显示为时间戳问题及解决方案
- 问题描述
-
- 解决方法1
- 解决方法2
- 一点小细节和拓展
问题描述
最近在做一个SpringBoot项目,数据库使用的是MySQL 5.7,在传递日期时间数据时出现了异常,数据库中的日期显示格式为"yy-mm-dd hh:mm:ss",而传到前端显示的则是一长串数字,即时间戳(即从1970年1月1日00:00:00 GMT标准基准时间到当前时间经过的毫秒数)
解决方法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变成时间戳
解决方法2
查看出现错误的时间日期所在的定义类,不出意外的话它调用的是import java.util.Date,把util改成sql就完事了
一点小细节和拓展
如果使用util转sql的Date,需要保证只有年月日,时间的时分秒必须为零,否则无法转换
所以这个问题的根本原因是什么呢?
我个人猜测应该是Generator生成逆向工程时类中默认生成的就是java.util.Date,导致出现时间戳问题
ok,就这样,最近也在忙着找工作,愈发感觉到人的记忆力确实不如烂笔头,写博客记录是一个非常好的习惯,希望可以保持下去吧。
声明:本站所有文章,如无特殊说明或标注,均为网络收集发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。