【问题标题】:how do I compare time part from Date in java如何比较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;
}

【问题讨论】:

标签: java android date


【解决方案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()));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2012-07-22
    • 2013-07-25
    • 2010-09-11
    • 2011-12-02
    • 2021-02-09
    • 1970-01-01
    相关资源
    最近更新 更多