jackson/fastjson、mybatis、mysql date/datatime/timestamp、java Date/Timestamp关系详解

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

默认情况下,jackson/fastjson将java Date/Timestamp类型序列化为时间戳,也就是1970年1月1日0点以来的毫秒数。如果要显示为用户友好表示:

Jackson 可以:

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);

第二种方法:

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
上一篇:Spring 自动装配及其注解


下一篇:Java Date and Calendar examples