采用morphia操作日期查询:
public List<KlineEntity> queryByRecordTime(String marketCode,String stockCode,String startDate, String endDate) throws Exception { Query query = datastore.createQuery(KlineEntity.class); query.field("marketCode").equal(marketCode); query.field("stockCode").equal(stockCode); if (!StringUtils.isEmpty(startDate)) { Date beginDate = DateUtils.parseDate(startDate,pattern); query.filter("recordTime >=",beginDate); // query.field("recordTime").greaterThanOrEq(startDate); } if (!StringUtils.isEmpty(endDate)) { Date enDate = DateUtils.parseDate(endDate,pattern); query.filter("recordTime <=",enDate); // query.field("recordTime").lessThanOrEq(endDate); } query.order("-recordTime"); List<KlineEntity> list = query.asList(); return list; }
org.apache.commons.lang.time.DateUtils.paraseDate(String sDate,String[] parasePatterns);
- String[] pattern = new String[]{"yyyy-MM","yyyyMM","yyyy/MM",
- "yyyyMMdd","yyyy-MM-dd","yyyy/MM/dd",
- "yyyyMMddHHmmss",
- "yyyy-MM-dd HH:mm:ss",
- "yyyy/MM/dd HH:mm:ss"};
- DateUtils.parseDate(date, pattern);