有的时候我们会输入一个日期,然后去查询某一实体在改天内创建的对象。大致的思路就是根据输入的日期设置该天的一个范围(startTime,endTime),然后分别去比较对象的创建日期,这样就可以查询出符合条件的对象。
if(testEntity.getCreateTime()!= null){
try {
//先将日期格式的数据转化为字符串日期格式,进行字符串拼接之后再将字符串转换成日期类型数据,便于进行日期比较
Date start = DateUtil.fromString(DateUtil.currDayData(testEntity.getCreateTime(),"yyyy-MM-dd")+" 00:00:00","yyyy-MM-dd HH:mm:ss");
criteria.add(Restrictions.ge(TestEntity.PROP_CREATE_TIME,start));
Date end = DateUtil.fromString(DateUtil.currDayData(testEntity.getCreateTime(), "yyyy-MM-dd")+" 23:59:59", "yyyy-MM-dd HH:mm:ss");
criteria.add(Restrictions.le(TestEntity.PROP_CREATE_TIME,end));
} catch (ParseException e) {
e.printStackTrace();
}
}
其中使用了工具类DateUtil中的两个方法:currDayData()方法,fromString()方法。(注:工具类中的方法是自己写的):
1、currDayData()方法:将日期格式的数据转化为字符串格式,主要使用的是JAVA中SimpleDateFormat类的format方法,将日期类型(Date)数据格式化为字符串(String)。
/**
* 获取字符串日期格式---将日期类型数据转化成字符串格式可以进 行字符串拼接
* @param date
* @param format
* @return
*/
public static String currDayData(Date date,String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
//调用SimpleDateFormat类的format方法,返回字符串日期格式
return sdf.format(date);
}
2、fromString()方法:将字符串转换成日期类型数据,主要使用的是JAVA中SimpleDateFormat类的parse方法,将字符串类型(java.lang.String)解析为日期类型(java.util.Date)。
/**
* 字符串转换成日期类型数据
* @param dateStr
* @param format
* @return
* @throws ParseException
*/
public static Date fromString(String dateStr,String format) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(format);
//调用SimpleDateFormat类的parse方法,返回日期类型数据
return sdf.parse(dateStr);
}