如果模型包含日期,则使用领域 createObjectFromJson 创建对象会抛出异常

Creating an object with realm createObjectFromJson throws exception if the model contains a Date

我有以下两个模型 类:

public class A extends RealmObject {
    private String field1;
    private B field2;

    //getters and setters
    //...
}

public class B extends RealmObject {
    private String field3;
    private Date field4;

    //getters and setters
    //...
}

我收到以下与型号相对应的 JSON:

{
    "field1" : "hi",
    "field2" : {
        "field3" : "hi again",
        "field4" : "2015-02-17T00:00:00"
    }
}

我正在尝试使用 createObjectFromJson(A.class, jsonString) 从 JSON 创建一个 A 对象,但出现异常 java.lang.NumberFormatException: Invalid long: "2015-02-17T00:00:00"

realm 似乎将日期视为 long 而不是 String。有没有办法设置某种日期格式?

Realm目前只支持两种日期格式。你可以在这里看到它们:https://github.com/realm/realm-java/blob/master/realm/src/main/java/io/realm/internal/android/JsonUtils.java

但是,我们确实计划在实施 JSON API 的 V2 时添加对像您这样的 ISO8061 日期格式的支持。您可以在此处关注相关进展:https://github.com/realm/realm-java/issues/682

在那之前,您必须手动转换时间戳或使用 GSON 的日期格式化程序:GSON - Date format