前端返回一個時間戳格式,需要轉化爲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;
}