前端返回一个时间戳格式,需要转化为iso才能被mongo识取
这边是有两个筛选条件,一个是id,一个是时间范围
lt:小于 lte: 小于等于 gte :大于等于 gt: 大于
@Override
public List<InspectPlaceRecord> getUserRouteAndTime(String id, Long date) {
Date date1 = new Date(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date1);
calendar.add(Calendar.MONTH, 1);
Query query = new Query();
query.addCriteria(Criteria.where("inspectStaffid").is(id)
.andOperator(
Criteria.where("inspectDate").lt(dateToISODate(calendar.getTime())),
Criteria.where("inspectDate").gte(dateToISODate(date1))));
return mongoTemplate.find(query, InspectPlaceRecord.class);
}
public static Date dateToISODate(Date dateStr) {
Date parse = null;
try {
// 解析字符串时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
parse = format.parse(format.format(dateStr));
} catch (ParseException e) {
e.printStackTrace();
}
return parse;
}
当然也有可能是前端传过一个字符串,我们需要转为date
public static Date strToDateLong(String strDate) {
Date strtodate = null;
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
strtodate = formatter.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
return strtodate;
}