如何比较领域 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
但是我不知道你是如何处理你的网络请求的。
我正在使用领域数据库。我需要比较我存储在 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
但是我不知道你是如何处理你的网络请求的。