比较java中的两个时间值

时间:2014-04-29 08:04:51

标签: android

我想获得当前的系统时间并与两个不同的时间示例开始时间比较为凌晨2:00:00,结束时间为6:00:00 AM。如果我当前的系统时间介于这些之间我必须执行我的其余代码并在textview中显示输出。  我有这个使用此代码获取当前时间我需要帮助在if条件中使用开始和结束时间。

enter code here



 TextView tvTime = (TextView)findViewById(R.id.textView1);
    SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss a");
    Calendar c = Calendar.getInstance(); 

    if (if (c.getTime() == 2:00:00 AM && < 6:00:00 AM) {

   tvTime.setText(" " + timeFormat.format(c.getTime()));
   }

3 个答案:

答案 0 :(得分:3)

尝试before()

after()Calender方法
public boolean isTimeWithinInterval(String lwrLimit, String uprLimit, String time){

    // Time 1 in string - Lower limit
    Date time_1 = new SimpleDateFormat("HH:mm:ss").parse(lwrLimit);
    Calendar calendar_1 = Calendar.getInstance();
    calendar_1.setTime(time_1);

    // Time 2 in string - Upper limit
    Date time_2 = new SimpleDateFormat("HH:mm:ss").parse(uprLimit);
    Calendar calendar_2 = Calendar.getInstance();
    calendar_2.setTime(time_2);

    // Time 3 in String - to be checked
    Date d = new SimpleDateFormat("HH:mm:ss").parse(time);
    Calendar calendar_3 = Calendar.getInstance();
    calendar_3.setTime(d);

    Date x = calendar_3.getTime();
    if (x.after(calendar_1.getTime()) && x.before(calendar_2.getTime())) {
        //checkes whether the current time is between two times
        Log.d(TAG,true+"");
        return true;
    } 

    return false;
}

更新:

 boolean timeChk = isTimeWithinInterval(time1, time2, time3);

 if(timeChk){
   // Success code
   tvTime.setText(" " + time3);
 }
 else{
   // Failure code

 }

答案 1 :(得分:0)

你应该真的尝试使用Calendar类更容易使用Calendar.before(calendar)具有该功能。

答案 2 :(得分:0)

无论如何,java在日期和时间方面存在问题。

您应该使用 Joda Time 它的日期和时间库来替换JDK日期处理

下载:http://mvnrepository.com/artifact/joda-time/joda-time/2.3