最近做的一个需求需要比对当前时间和数据库里面设定的开始时间、结束时间。
截取部分代码用于个人备忘。
//获取当前系统时间并格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");//此处为数据库中存入格式
Date date = new Date(System.currentTimeMillis()); //获取当前系统时间
//上面这部分可以共用,主要用于取出当前系统时间并转换成指定的时间格式.
此处略去从数据库中取出所需时间的过程。
Date startTime = sdf.parse(Bean.getStartTime()); //获取活动开始时间
Date endTime = sdf.parse(Bean.getEndTime()); //获取活动结束时间
//compareTo这个方法可以通过比对时间同时返回三个状态:1、0、-1
//如果"date>startTime"则i=1;"date=startTime"则i=0;"date<startTime"则i=-1;
int i = date.compareTo(startTime);
//如果"date>endTime"则j=1;"date=endTime"则j=0;"date<endTime"则j=-1;
int j = date.compareTo(endTime);
//活动时间:当前时间大于或等于开始时间并小于或等于结束时间。
if ((i == 1 || i == 0) && (j == 0 || j == -1)) {
//上面应该定义一个默认为false的flag,如果当前时间在活动时间内则返回true
flag = true;
}