package com.fasterxml.jackson.databind.format;
import java.util.Calendar;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.*;
public class DateFormatTest extends BaseMapTest
{
protected static class DateWrapper {
public Date value;
public DateWrapper() { }
public DateWrapper(long l) { value = new Date(l); }
public DateWrapper(Date v) { value = v; }
}
public void testTypeDefaults() throws Exception
{
ObjectMapper mapper = newObjectMapper();
mapper.configOverride(Date.class)
.setFormat(JsonFormat.Value.forPattern("yyyy.dd.MM"));
// First serialize, should result in this (in UTC):
String json = mapper.writeValueAsString(new DateWrapper(0L));
assertEquals(aposToQuotes("{'value':'1970.01.01'}"), json);
// and then read back
DateWrapper w = mapper.readValue(aposToQuotes("{'value':'1981.13.3'}"), DateWrapper.class);
assertNotNull(w);
// arbitrary TimeZone, but good enough to ensure year is right
Calendar c = Calendar.getInstance();
c.setTime(w.value);
assertEquals(1981, c.get(Calendar.YEAR));
assertEquals(Calendar.MARCH, c.get(Calendar.MONTH));
}
}