According to JacksonFAQDateHandling page:
All time objects that have associated TimeZone (java.util.Calendar
etc) that Jackson constructs use the standard timezone (GMT), not the
local time zone (whatever that might be). That is: Jackson defaults to
using GMT for all processing unless specifically told otherwise.
In your case, it looks like the date is automatically being converted to GMT/UTC. Try to provide your local timezone explicitly to avoid UTC conversion [as mentioned in the question How come this time is off by 9 hours? (5 hours, 3 hours etc) on same page]:
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd/MM/yyyy", timezone="EST")
Secondly, I think you are using Date.toString()
to print date. Note that java Date
class is timezone independent but its toString()
method uses the system's default timezone before printing.
Here it looks like 24/07/2015 00:00 UTC
is being converted to 23/07/2015 19:00 EST
by toString()
. Both of these represent the same moment of time but in different timezones.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…