使用 MyBatis 的时候 , 总是会遇到后面多一个 .0 的情况 , 这种情况使用 MySql 的时间格式化函数就可以了 :
DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') AS createTime
参数列表 :
%M 月名字 (January……December)
%W 星期名字 (Sunday……Saturday)
%D 有英语前缀的月份的日期 (1st , 2nd , 3rd , 等等)
%Y 年 , 数字 , 4 位
%y 年 , 数字 , 2 位
%a 缩写的星期名字 (Sun~Sat)
%d 月份中的天数 , 数字 (00~31)
%e 月份中的天数 , 数字 (0~31)
%m 月 , 数字 (01~12)
%c 月 , 数字 (1~12)
%b 缩写的月份名字 (Jan~Dec)
%j 一年中的天数 (001~366)
%H 小时 (00~23)
%k 小时 (0~23)
%h 小时 (01~12)
%I 小时 (01~12)
%l 小时 (1~12)
%i 分钟 , 数字(00~59)
%r 时间 , 12 小时 (hh:mm:ss [AP]M)
%T 时间 , 24 小时 (hh:mm:ss)
%S 秒 (00~59)
%s 秒 (00~59)
%p AM 或 PM
%w 一个星期中的天数 (0=Sunday , 6=Saturday )
%U 星期 (0~52) , 这里星期天是星期的第一天
%u 星期(0~52) , 这里星期一是星期的第一天
%% 一个文字 "%"
把字符串转为日期格式 :
SELECT DATE_FORMAT('2011-09-20 08:30:45', '%Y-%m-%d %H:%i:%S');
把日期转为字符串格式 :
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S');
另外一个优雅的写法 , 是在具体的实体类上的字段上使用格式化 :
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
例如 :
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date startDate;
记得在后面加上时区 , 不然时间会减小八个小时 , 因为我们是东八区
另外需要知道的是 , 只有 Date 类型用 JsonFormate 才有用 , 如果写成 String 或者 DateTime 就没用了
作者 Github : tojohnonly , 博客 : EnskDeCode

本文介绍在使用MyBatis框架时如何处理时间格式化问题,包括利用MySQL的DATE_FORMAT函数转换日期和时间,以及在实体类中使用@JsonFormat注解进行格式化。文章还强调了时区设置的重要性。
510

被折叠的 条评论
为什么被折叠?



