来自休息服务的杰克逊日期格式不正确

时间:2016-02-25 12:03:47

标签: android json date jackson

我有一个简单的对象,有两个这样的日期

示例:

public class Person extends RealmObject {

    @PrimaryKey
    private int person_id;
    private Date person_date_time1;
    private Date person_date_time2;

//getter , setters

}

android rest服务返回的json结构如下

{
            "person_id": 11077,
            "person_date_time1": "2012-11-27", 
            "person_date_time2": "2011-11-27T08:30:00Z" 
}

问题是杰克逊格式化程序解析的日期不正确:(

person.person_date_time1打印Mon 11月26日星期一19:00:00(减去一天) person.person_date_time2打印2011年11月27日03:30:00 EST(减少5小时)

如何在Android上使用jackson定义正确的反序列化日期格式?

其余服务android

@Rest(rootUrl = ConstantsUtils.URL, converters = { MappingJackson2HttpMessageConverter.class })
@Accept(MediaType.APPLICATION_JSON)
public interface PersonRest extends RestClientErrorHandling {

    @Get("/person/{id}")
    Person getPerson(String id);
}

我无法使用jodadatetime,因为我使用api来保存数据(realm.io),它仅适用于Date

非常感谢

1 个答案:

答案 0 :(得分:0)

Jakcson解析器很好,但看起来你在JSON上如何表示日期有问题。 Jackson解析器将遵循创建Date对象的精确模式,因此您必须匹配它。