很久前,项目中有一个打卡业务需求,需要判断用户签到的时间段。
一开始考虑的特别复杂的时间判断。
后天来发现,Date中有时间比较的方法before和after
1、使用after/before进行日期比较时注意:
date1.after(date2) --在某个时间之后
当date1大于date2时,返回true,当小于等于时,返回false;
date1.before(date2) --在某个时间之前
当date1小于date2时,返回true,当大于等于时,返回false.
2、 compareTo()
将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。
该方法用于两个相同数据类型的比较,
通过getMillisOf()获取long类型时间然后比较
小于的就返回-1,等于的就返回0,大于的就返回1
PS:String类
- 字符串与对象进行比较
- 按字典顺序比较两个字符串 ASCII码顺序
int compareTo(Object o)
或
int compareTo(String anotherString)
3、使用date.getTime() 返回long,再进行比较
if(date1.getTime() < date2.getTime()) {}
4、SimpleDateFormat的format方法
先将日期型转化成时间或日期的字符串,然后再比较字符串