在java中如何处理日期格式问题

时间:2022-02-18 09:38:58

1.最简洁的办法就是在对应的对象中加注解

如下一个例子:

@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
private Date valueDate;

注意:timezone = "GMT+8"一定要加,不然会少一天

如果你的字段是一个日期格式,就如上定义,但是如果使用的是Mybatis,在MyBatis中一定不能写类型为timestamp,否则会报错

正确的写法如下:

属性列

<resultMap id="BaseResultMap" type="com.cn.demo.domain.Card" >

<result column="createTime" property="createtime"  />

</resultMap>

错误的写法如下:

<resultMap id="BaseResultMap" type="com.cn.demo.domain.Card" >

<result column="createTime" property="createtime" jdbcType="TIMESTAMP"   />

</resultMap>

总之就是涉及到到日期格式的地方不能加 jdbcType="TIMESTAMP"

注意:在MySql数据库中date类型只显示年月日,datetime类型显示的是年月日时分秒

2.在Controller层进行日期转换的时候,代码如下:

Date date = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).parse(valueDate);

其中valueDate是传进来的数据,但是传进来的字符串格式要和"yyyy-MM-dd"的格式相同,不然会报异常