1. 程式人生 > >在java中如何處理日期格式問題

在java中如何處理日期格式問題

字符 如果 etime create sql locale .get 數據庫 car

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中如何處理日期格式問題