package aQute.lib.json; import java.io.IOException; import java.lang.reflect.Type; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.Map; import java.util.TimeZone; public class DateHandler extends Handler { final static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH); static { sdf.setTimeZone(TimeZone.getTimeZone("UTC")); } @Override public void encode(Encoder app, Object object, Map<Object,Type> visited) throws IOException, Exception { String s; synchronized (sdf) { s = sdf.format((Date) object); } StringHandler.string(app, s); } @Override public Object decode(Decoder dec, String s) throws Exception { synchronized (sdf) { return sdf.parse(s); } } @Override public Object decode(Decoder dec, Number s) throws Exception { return new Date(s.longValue()); } }