MyBatis 时间格式出现 .0 解决办法

使用 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

你可能感兴趣的:(Java,MySql,MyBatis)