首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将一个时间与提供的另外两个时间进行比较?

如何将一个时间与提供的另外两个时间进行比较?
EN

Stack Overflow用户
提问于 2013-03-22 15:13:45
回答 3查看 306关注 0票数 2

一直很困惑..。例如,如果我们在比较时间,绝对不推荐使用字符串...但是如果它的格式是(HH:mm:ss)。我应该如何比较它们来做一些事情呢?

例如: Target1: 9:00:00 Target2: 23:00:00

在输入大于Target1小于Target2的情况下,如何进行比较逻辑?

代码语言:javascript
复制
if(input > Target1 && input < Target2){
  //do statement A
}else{
  //do statement B
}

所以,如果我的输入时间是10:00:00,它应该运行语句A,如果输入时间是23:01:00,它应该运行语句B,我应该怎么做呢?大于(>)和小于(<)在时间格式中是否合适?

EN

回答 3

Stack Overflow用户

发布于 2013-03-22 15:17:07

给定它们为字符串,您可以将它们从SimpleDateFormat转换为Date对象。

代码语言:javascript
复制
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");

最简单的方法是通过执行以下操作将它们转换为毫秒数

代码语言:javascript
复制
long time1 = sdf.parse(Target1).getTime();
long time2 = sdf.parse(Target2).getTime();
long inputTime = sdf.parse(input).getTime();

这样,您实际上是在进行整数比较,并且您可以忘记所有的日期时间事务。

代码语言:javascript
复制
if(inputTime > time1 && inputTime < time2)
票数 1
EN

Stack Overflow用户

发布于 2013-03-22 15:20:35

代码语言:javascript
复制
SimpleDateFormat df=new SimpleDateFormat("hh:mm:ss");             
Date d1=df.parse(dateToPars); 

d1.after(otherTimeYouWantTocompare);  OR 
d1.before(otherTimeYouWantTocompare); 

但您必须以上述格式提供时间

票数 0
EN

Stack Overflow用户

发布于 2013-03-22 16:04:50

你可以使用日历函数.getTimeInMillis()来计算差值,得到2个不同时间的差值,这里你只需要在日历中设置你的具体时间,并与之进行比较

代码语言:javascript
复制
try{
            Calendar calender = Calendar.getInstance();
            Calendar calDb = Calendar.getInstance();
            Calendar matchd = Calendar.getInstance();

            mYear = calender.get(Calendar.YEAR);
            mMonth = calender.get(Calendar.MONTH);
            mDay = calender.get(Calendar.DAY_OF_MONTH);

            mendYear = calDb.get(Calendar.YEAR);
            mendMonth = calDb.get(Calendar.MONTH);
            mendDay = calDb.get(Calendar.DAY_OF_MONTH);    
                       // Here you can change day values        
                    calDb.set(Calendar.DAY_OF_MONTH, mDay-1);

            strbeforedate = mDateFormat.format(calDb.getTime());
            curentdate = mDateFormat.format(calender.getTime());

            calDb.setTime(mDateFormat.parse(strbeforedate));
            calender.setTime(mDateFormat.parse(curentdate));



            String mydate = "2013.03.14 03:11";
            String mdatetime = "";

            deletepath =  new ArrayList<String>();          

                try{
                    // here your matching goes and pass date here 

                     matchd.setTime(mDateFormat.parse(mdatetime));
                     long diff = calDb.getTimeInMillis() - calender.getTimeInMillis();
                     long matchdiff = matchd.getTimeInMillis() - calender.getTimeInMillis();
                        if(diff < matchdiff){

                                     // do your work here
                        }else{

                         // do your else work here

                        }
                }catch(Exception e){
                    e.printStackTrace();
                }                   
        }

        }catch(Exception e){
            e.printStackTrace();
        }

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15564779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档