-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFDateJsonDeserializer.java
41 lines (33 loc) · 1.21 KB
/
FDateJsonDeserializer.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.io.IOException;
import java.util.Date;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
/**
* @author liyebing created on 15/9/8.
* @version $Id$
*/
public class FDateJsonDeserializer extends JsonDeserializer<Date> {
static final String PATTERN = "yyyy-MM-dd HH:mm:ss";
static final DateTimeFormatter fmt = DateTimeFormat.forPattern(PATTERN);
@Override public Date deserialize(JsonParser gen, DeserializationContext ctxt) throws IOException,JsonProcessingException {
String date = gen.getText();
if (StringUtils.isEmpty(date)) {
return null;
}
if (StringUtils.isNumeric(date)) {
return new Date(Long.valueOf(date));
}
try {
DateTime dt = fmt.parseDateTime(date);
return dt.toDate();
} catch (Exception e) {
throw new IOException(e);
}
}
}