今天踩到了一个坑,就是本来格式化时间的方式都是一样的,数据库中存储的方式也是一样的。
数据库中都是date
这种显示方式
然后页面Thymeleaf模板引擎中有个时间格式化处理
处理的别的都没事向下面这种从数据库中取出是一串数字的时间。都能正常格式化。
然后突然有个不行了。看了下传出的数据不是一串数字的了
时间已经是格式好的字符串了。这是怎么回事。我还没格式化呢?
数据库里没问题。
最后发现是这个定义的model 的类型时Date 导入的包为java.sql.Date
没出错能正常初始化的都是 java.util.Date
换成 java.util.Date就能正常格式化了。
总结:
java.sql.Date他是java.util.Date 的子类。是针对SQL语句使用的,它只包含日期而没有时间部分,
它把数据库中date转到java中时日期格式就是yyy-MM-dd 的日期。不用再格式化了。
java.sql.Date----->
java.util.Date----->
所以一般要统一格式化的话就用java.util.Date吧,它表示某一瞬间的时间比较全。java.sql.Date只带日期
java.sql.Time 只有时间信息,没有日期信息。