jackson/fastjson、mybatis、mysql date/datatime/timestamp、java Date/Timestamp關係詳解

jackson/fastjson序列化/反序列化:html

默認狀況下,jackson/fastjson將java Date/Timestamp類型序列化爲時間戳,也就是1970年1月1日0點以來的毫秒數。若是要顯示爲用戶友好表示:java

Jackson 能夠:mysql

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
objectMapper.setDateFormat(sdf)
或者:
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")

FASTJSON能夠:
@JSONField (format="yyyy-MM-dd HH:mm:ss") 
或者:

 

第一種方法:
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
String str = JSON.toJSONString(user,SerializerFeature.WriteDateUseDateFormat);sql

第二種方法:json

JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS")
=================
Timestamp對應MySQL的datetime類型
Timestamp對應MySQL的timestamp類型Date會對應mysql的date類型<result column="modified_date" jdbcType="TIMESTAMP" property="modified_date" javaType="java.sql.Timestamp" />  
<result column="date" jdbcType="DATE" property="date" javaType="java.util.Date" />字段標明:#{modified_date,jdbcType=TIMESTAMP}、#{date,jdbcType=DATE}具體可參考:https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-type-conversions.html
相關文章
相關標籤/搜索