在java中如何處理日期格式問題
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"的格式相同,不然會報異常
在java中如何處理日期格式問題