2017-07-13 14 views
1

私は領域データベースを使用しています。私はmodel.Butに格納されている2つの日付を比較する必要がありますが、私は文字列に格納しています。realm androidのクエリの間で日付を比較する方法

エラー:java.lang.IllegalArgumentException:フィールド 'appointmentDate':型が一致しません。 STRINGであり、[INTEGER]であることが必要です。

JSON:[AppointmentBook = [{ID:1}、{patientID:20059}、{appointmentDate:2017年7月13日}、{appointmentCustomerName:nitishのパトラ}、{appointmentCustomerNumber:9382882382}、{appointmentStartTime :18:15}、{appointmentEndTime:19:15}、{理由:SASS}、{状態:ヌル}]]

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

私は2つの日付を比較することができない文字列として日付を格納していますので。どのようにこれを達成するために "2017-07-13"から "2017-07-13"の間にある日付を取得する。これを達成するためのクエリはありますか

Modelクラス:

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 + '\'' + 
       '}'; 
    } 


} 

答えて

3

レルムはDateタイプをサポートしています。 Stringを保存していて、それが日付を表すかどうかはわかりません。

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

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

source

しかし、私はあなたのネットワーク要求を処理する方法は考えている:あなたはGsonで改修を使用している場合

あなたはこのような何かを行うことができます。

+0

これを文字列で実現する方法。クエリーはありますか?またはチェックする前にキャストすることができますか?私が知る限りでは、あなたは@abhinaygの – winchester100

+0

です。それは単なる文字列です。日付が必要な場合は、日付を使用する必要があります。 JSONを日付に直接デシリアライズすることができます。 Gsonを使用している場合は、setDateFormat – andrei

+0

で日付形式を指定することができると思います。これまでのJSONのデシリアライズ方法この – winchester100

関連する問題