Джода Время действительно путь.Однако, если по какой-либо причине вы застряли с java.util.Date
, вы можете настроить сериализацию следующим образом:
JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(
Class.forName("java.util.Date"),
new NiceDateJsonBeanProcessor());
final JSONObject jsonObjectForDate = JSONSerializer.toJSON(object, jsonConfig)
Где NiceDateJsonBeanProcessor
- это способ определения сериализации объекта java.util.Date
.как.В моем случае я был доволен временем Unix, поэтому:
public static class NiceDateJsonBeanProcessor implements JsonValueProcessor {
@Override
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
return process(value, jsonConfig);
}
@Override
public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
return process(value, jsonConfig);
}
private Object process(Object value, JsonConfig jsonConfig) {
if (value instanceof java.util.Date) {
java.util.Date d = (java.util.Date) value;
return d.getTime();
}
return null;
}
}