我对Java有点新,我正在尝试编写一个查询,它将在两个日期之间返回存储在我的mongodb中的文档。我认为我已接近正确,但我很难到达那里。我收到的格式如下:
我比较的日期存储在数据库中,如下所示:
到目前为止我有什么......
public List<VehicleStatus> getReportingDateRange(List<String> dates) {
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss-SSSS");
Date startDate = outputFormat.parse(dates.get(0));
Date endDate = outputFormat.parse(dates.get(1));
Query query = new Query();
Criteria c = new Criteria().andOperator(Criteria.where("updateTime").gte(outputFormat.format(startDate)),
Criteria.where("updateTime").lte(outputFormat.format(endDate)));
query.addCriteria(c);
return this.mongoOperations.find(query, VehicleStatus.class);
}
我收到一个解析异常。我真的不知道从哪里开始,任何帮助都非常感谢。如果您需要任何其他信息,请告诉我们。
谢谢!
答案 0 :(得分:2)
You will need to parse the date into input format followed by formatting the date to output format.
Something like
String startDate = outputFormat.format(inputFormat.parse(dates[0]));
String endDate = outputFormat.format(inputFormat.parse(dates[0]));
Criteria c = new Criteria().andOperator(Criteria.where("updateTime").gte(startDate), Criteria.where("updateTime").lte(endDate));
You should try to save the date as date type and use below version.
Date startDate = inputFormat.parse(dates.get(0));
Date endDate = inputFormat .parse(dates.get(1));
Criteria c = new Criteria().andOperator(Criteria.where("updateTime").gte(startDate), Criteria.where("updateTime").lte(endDate));