一直很困惑..。例如,如果我们在比较时间,绝对不推荐使用字符串...但是如果它的格式是(HH:mm:ss)。我应该如何比较它们来做一些事情呢?
例如: Target1: 9:00:00 Target2: 23:00:00
在输入大于Target1小于Target2的情况下,如何进行比较逻辑?
if(input > Target1 && input < Target2){
//do statement A
}else{
//do statement B
}所以,如果我的输入时间是10:00:00,它应该运行语句A,如果输入时间是23:01:00,它应该运行语句B,我应该怎么做呢?大于(>)和小于(<)在时间格式中是否合适?
发布于 2013-03-22 15:17:07
给定它们为字符串,您可以将它们从SimpleDateFormat转换为Date对象。
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");最简单的方法是通过执行以下操作将它们转换为毫秒数
long time1 = sdf.parse(Target1).getTime();
long time2 = sdf.parse(Target2).getTime();
long inputTime = sdf.parse(input).getTime();这样,您实际上是在进行整数比较,并且您可以忘记所有的日期时间事务。
if(inputTime > time1 && inputTime < time2)发布于 2013-03-22 15:20:35
SimpleDateFormat df=new SimpleDateFormat("hh:mm:ss");
Date d1=df.parse(dateToPars);
d1.after(otherTimeYouWantTocompare); OR
d1.before(otherTimeYouWantTocompare); 但您必须以上述格式提供时间
发布于 2013-03-22 16:04:50
你可以使用日历函数.getTimeInMillis()来计算差值,得到2个不同时间的差值,这里你只需要在日历中设置你的具体时间,并与之进行比较
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();
}
}https://stackoverflow.com/questions/15564779
复制相似问题