我需要比较两个日期/时间变量中的时间部分,看看时间是否介于android中的当前时间之间。我该怎么做呢?
Boolean InBetweenTime(Date currentTime, Date StartTime, Date EndTime)
{
Boolean result = false;
Calendar calendar = Calendar.getInstance();
if ((!currentTime.before(StartTime))&&(!currentTime.after(EndTime))){
//between time
} else {
//not inbetween time
}
return result;
}
3条答案
按热度按时间9lowa7mx1#
如果你只需要比较时间,忽略日期,那么你应该这样做,这样你的“日期”部分在所有三个变量中是相等的。
llmtgqce2#
要获取Date的时间部分(即日期/时间值),请使用以下代码:
khbbv19g3#
使用java.time API的解决方案(Java 8+)
使用modern date-time API时,溶液将洁净透明。
演示:
在~ 2022-11- 30 T23:32:00 Z运行时的输出:
从**Trail: Date Time**了解有关现代日期-时间API的更多信息。
使用Java版本〈8的解决方案
如果您的项目允许使用第三方的日期-时间库,我建议您选择How to use ThreeTenABP in Android Project。ThreeTenABP库可以将
java.time
API向后移植到Java 6和7。如果你想坚持使用Java版本〈8的标准库,这里有一个解决方案:
诀窍是将今天的年、月、日设置为startDate和endDate,然后你可以像往常一样比较它们。如果你在
Date
的所有三个示例中都有相同的年、月、日,基本上你只是比较它们的时间。演示:
在~ 2022-11- 30 T23:33:00 Z运行时的输出: