日期格式转换与判断时间是否在某个区间
日期格式转换
String time1 = "2019-10-12 23:54:25";
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date time1Date = df1.parse(time1 );
SimpleDateFormat df = new SimpleDateFormat("HH:mm");//设置日期格式
//初始化
Date nowTime =null;
Date beginTime = null;
Date endTime = null;
try {
//格式化当前时间格式
nowTime = df.parse(df.format(time1Date ));
System.out.println("time1Date :"+time1Date );
System.out.println("df.format(time1Date ):"+df.format(time1Date ));
System.out.println("nowTime:"+nowTime);
} catch (Exception e) {
e.printStackTrace();
}
上述代码,
- time1转化为日期格式是 Sat Oct 12 23:54:25 CST 2019
- time1 以"HH:mm"格式,进行格式化后值为:23:54
- 这时将其转化为日期格式,时间就会变成Thu Jan 01 23:54:00 CST 1970,将日期自动补充为计算机时间戳的起始时间1970年一月一日,时分不变
判断时间是否在某个区间(HH:mm:ss)
nowTime = df.parse(df.format(time1Date ));
beginTime = df.parse("23:30");
//定义结束时间
endTime = df.parse("23:59");
boolean flag = belongCalendar(nowTime, beginTime, endTime);
--------------------------
public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
//设置当前时间
Calendar date = Calendar.getInstance();
date.setTime(nowTime);
//设置开始时间
Calendar begin = Calendar.getInstance();
begin.setTime(beginTime);
//设置结束时间
Calendar end = Calendar.getInstance();
end.setTime(endTime);
//处于开始时间之后,和结束时间之前的判断
if (date.after(begin) && date.before(end)) {
return true;
} else {
return false;
}
}
将nowTime/beginTime/endTime 进行日期格式化,由于没有日期,df.format格式化时,会将日期固定位时间戳起始日期,然后进行日期比较就可以。