jacksonでjava.util.Dateをデシリアライズすると9時間ずれる
"sched_date": "2015-09-12"
をデシリアライズしてjava.util.Date sched_date
にマッピングすると2015年9月12日 0時0分0.0秒を期待しているのですが、java.util.Date#.getTime()
を行ってみると、9時間進んでいます。
日本で9時間のずれということはタイムゾーンの可能性が非常に高いです。 案の定、FAQに書かれています。
http://wiki.fasterxml.com/JacksonFAQDateHandling
How come this time is off by 9 hours? (5 hours, 3 hours etc)
You may be thinking in terms of your local time zone. Remember that Jackson defaults to > using GMT (Greenwich time, one hour behind central European timezone; multiple hours ahead of US time zones).
ObjectMapeerにタイムゾーンを指定すると希望する値を取れます。
ObjectMapper mapper = new ObjectMapper(); mapper.setTimeZone(TimeZone.getTimeZone(ZoneId.of("Asia/Tokyo")));