如何比较Java中日期的时间部分
Posted
技术标签:
【中文标题】如何比较Java中日期的时间部分【英文标题】:how do I compare time part from Date in java 【发布时间】:2019-03-26 13:51:05 【问题描述】:我需要比较 2 个日期/时间变量的时间部分,以查看时间是否介于 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;
【问题讨论】:
显示您已经尝试过的内容 请更好地解释您的问题。 你之前没有尝试就问过question,得到了答案,现在你没有尝试就问下一个问题。这次请提供minimal reproducible example,并展示您自己的尝试!另外,我还为您提供了一个示例,说明如何比较您之前问题的时间...... 从***.com/questions/52929034/…到这个 阅读LocalDateTime
、LocalDate
和LocalTime
的javadocs,也许还有一些例子,在www...
【参考方案1】:
如果您只需要比较时间,而忽略日期,那么您应该这样做,这样您的“日期”部分在所有三个变量中都是相等的。
Boolean InBetweenTime(Date currentTime, Date startTime, Date endTime)
Boolean result = false;
//calendar for currentTime
Calendar currentCal = Calendar.getInstance();
currentCal.setTime(currentTime);
//calendar for startTime
Calendar startCal = Calendar.getInstance();
startCal.setTime(startTime);
//calendar for endTime
Calendar endCal = Calendar.getInstance();
endCal.setTime(endTime);
//set corresponding date fields of startTime and endTime to be equal t ocurrentTime, so you compare only time fields
startCal.set(currentCal.get(Calendar.YEAR), currentCal.get(Calendar.MONTH), currentCal.get(Calendar.DAY_OF_MONTH));
endCal.set(currentCal.get(Calendar.YEAR), currentCal.get(Calendar.MONTH), currentCal.get(Calendar.DAY_OF_MONTH));
//return true if between, false otherwise
return (!currentTime.before(startCal.getTime())) && (!currentTime.after(endCal.getTime()));
【讨论】:
以上是关于如何比较Java中日期的时间部分的主要内容,如果未能解决你的问题,请参考以下文章