默认情况下,JacksonObjectMapper将Date和序列Timestamp化为2.9.xLong版本,而 Date则序列化为2.6.x和** 2.6.x* 版本。Formatted StringTimestampLong
例子:
case class Test(date: java.sql.Date, tmp: java.sql.Timestamp)
val test = Test(new java.sql.Date(1588892400000L), new Timestamp(1588892400000L))
writeValueAsString(test)
Run Code Online (Sandbox Code Playgroud)
{"date":"2020-05-08","tmp":1588892400000}//Version 2.6.x
{"date":1588892400000,"tmp":1588892400000}//Version 2.9.x
Run Code Online (Sandbox Code Playgroud)
但我想在2.9.x版本中保持2.6.x版本的行为。
我尝试过disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS),但随后它将Date&转换TimeStamp为Formatted String(如下所示)。
{"date":"2020-05-08","tmp":"2020-05-07T23:00:00.000+0000"}
Run Code Online (Sandbox Code Playgroud)
如果我设置 DateFormatter**,那么它会以相同的格式转换两者。
setDateFormat(new SimpleDateFormat("yyyy-MM-dd"))`
{"date":"2020-05-08","tmp":"2020-05-08"}
Run Code Online (Sandbox Code Playgroud)
**我只是treid它,但我不想设置DateFormatter(即使它有效),因为它也将用于输入日期格式不同的反序列化。
有办法实现这一点吗?