Java MongoTemplate的時間範圍查詢

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章