如何比较领域 android 中查询之间的日期

How to compare dates in between query in realm android

我正在使用领域数据库。我需要比较我存储在 model.But 中的两个日期和我存储在 string.If 中的日期我在查询之间使用它抛出错误。

错误:java.lang.IllegalArgumentException:字段 'appointmentDate':类型不匹配。是 STRING,应为 [INTEGER].

json: [AppointmentBook = [{id:1},{patientID:20059},{appointmentDate:2017-07-13},{appointmentCustomerName: nitish patra},{appointmentCustomerNumber:9382882382},{appointmentStartTime:18:15},{appointmentEndTime:19:15},{reason:sass},{status:null}]]

 appoint = realm.where(AppointmentBook.class).between("appointmentDate",2017-07-13, 2017-07-14).findAll();

因为我将日期存储为字符串,无法比较两个 dates.How 来实现此目的以获得位于“2017-07-13”到“2017-07-13”之间的日期。有没有查询实现这个

型号class:

public class AppointmentBook extends RealmObject{

    @PrimaryKey
    public long id;


    private long patientID;
    private String appointmentDate;
    private String appointmentCustomerName;
    private String appointmentCustomerNumber;
    private String appointmentStartTime;
    private String appointmentEndTime;
    private String reason;
    private String status;


    public AppointmentBook(){

    }

    public AppointmentBook(JsonObject data) throws ParseException {
        this.id = data.get("id").getAsLong();
        this.patientID = data.get("patientID").getAsInt();
        this.appointmentDate = data.get("appointmentDate").getAsString();
        this.appointmentCustomerName = data.get("customerName").getAsString();
        this.appointmentCustomerNumber = data.get("CustomerNumber").getAsString();
        this.appointmentStartTime = data.get("startTime").getAsString();
        this.appointmentEndTime = data.get("endTime").getAsString();
        this.reason = data.get("reason").getAsString();
        this.status = data.get("status").getAsString();
    }



    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public long getPatientID() {
        return patientID;
    }

    public void setPatientID(long patientID) {
        this.patientID = patientID;
    }

    public String getAppointmentDate() {
        return appointmentDate;
    }

    public void setAppointmentDate(String appointmentDate) {
        this.appointmentDate = appointmentDate;
    }

    public String getAppointmentCustomerName() {
        return appointmentCustomerName;
    }

    public void setAppointmentCustomerName(String appointmentCustomerName) {
        this.appointmentCustomerName = appointmentCustomerName;
    }

    public String getAppointmentCustomerNumber() {
        return appointmentCustomerNumber;
    }

    public void setAppointmentCustomerNumber(String appointmentCustomerNumber) {
        this.appointmentCustomerNumber = appointmentCustomerNumber;
    }

    public String getAppointmentStartTime() {
        return appointmentStartTime;
    }

    public void setAppointmentStartTime(String appointmentStartTime) {
        this.appointmentStartTime = appointmentStartTime;
    }

    public String getAppointmentEndTime() {
        return appointmentEndTime;
    }

    public void setAppointmentEndTime(String appointmentEndTime) {
        this.appointmentEndTime = appointmentEndTime;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "AppointmentBook{" +
                "id=" + id +
                ", patientID=" + patientID +
                ", appointmentDate='" + appointmentDate + '\'' +
                ", appointmentCustomerName='" + appointmentCustomerName + '\'' +
                ", appointmentCustomerNumber='" + appointmentCustomerNumber + '\'' +
                ", appointmentStartTime='" + appointmentStartTime + '\'' +
                ", appointmentEndTime='" + appointmentEndTime + '\'' +
                ", reason='" + reason + '\'' +
                ", status='" + status + '\'' +
                '}';
    }


}

Realm 支持 Date 类型。您正在存储一个 String,它不知道它代表一个日期。

如果你在 Gson 中使用 Retrofit,你可以这样做:

Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd")
.create();

RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API_BASE_URL)
.setConverter(new GsonConverter(gson))
.build();

source

但是我不知道你是如何处理你的网络请求的。