我想获得当前的系统时间并与两个不同的时间示例开始时间比较为凌晨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()));
}
答案 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