一、时间的处理(Java和Mybatis)
1、日期格式
在数据库中使用SQL语句测试这两者都可以:
INSERT INTO activity(NAME,start_time,end_time)
VALUES("考试时间","2022/10/29 9:00","2022/10/29 11:00")
INSERT INTO activity(NAME,start_time,end_time)
VALUES("考试时间","2022-10-29 9:00","2022-10-29 11:00")
但是后端必须和代码中的格式一致:
注意:
表示日期的时候,一定要使用 yyyy-MM-dd 而不是 YYYY-MM-dd
yyyy和YYYY在一些边界上会有差异。
2、关于时间的处理关键的点
二、MyBatis日期用法小技巧
想在实体类中使用java.util.Date类型,而且还想在数据库中保存时分秒时,可以在xml中修改为:
#{xxdate,jdbcType=TIMESTAMP}
就是将#{}中的jdbcType属性设置成TIMESTAMP,这样在保存的时候就会将时分秒也包含进去。
如果在xml中使用了<resultMap>,为了防止意外,最好将相应的字段也修改:
<result column="XXDATE" jdbcType="TIMESTAMP" property="xxdate"/>
三、Mybatis 处理日期格式自动转换
java.lang.String和java.util.Date之间自动转换
Mybatis日期格式自动转换需要用到的两个注解,@JsonFormat,@DateTimeFormat:
@DateTimeFormat(pattern="yyyy-MM-dd") // 页面写入数据库时格式化
@JSONField(format="yyyy-MM-dd") // 数据库导出页面时json格式化
@ApiModelProperty("出发时刻")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@ApiModelProperty("日期")
@JsonFormat(timezone = "GMT+8",pattern="yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date flightDate;
public class User implements Serializable{
private Integer id;
private String loginname;
private String password;
private Integer status;
@DateTimeFormat(pattern="yyyy-MM-dd") // 页面写入数据库时格式化
@JSONField(format="yyyy-MM-dd") // 数据库导出页面时json格式化
private Date createdate;
private String username;
// getter And setter
}
更多推荐
MyBatis中日期时间的处理
发布评论