最近在做一个SpringBoot项目,数据库使用的是MySQL 5.7,在传递日期时间数据时出现了异常,数据库中的日期显示格式为"yy-mm-dd hh:mm:ss",而传到前端显示的则是一长串数字,即时间戳(即从1970年1月1日00:00:00 GMT标准基准时间到当前时间经过的毫秒数)
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变成时间戳
查看出现错误的时间日期所在的定义类,不出意外的话它调用的是import java.util.Date,把util改成sql就完事了
如果使用util转sql的Date,需要保证只有年月日,时间的时分秒必须为零,否则无法转换
所以这个问题的根本原因是什么呢?
我个人猜测应该是Generator生成逆向工程时类中默认生成的就是java.util.Date,导致出现时间戳问题
ok,就这样,最近也在忙着找工作,愈发感觉到人的记忆力确实不如烂笔头,写博客记录是一个非常好的习惯,希望可以保持下去吧。