我试图比较两次,而不是怎么做。我没有任何例子。请告诉我
SimpleDateFormat stDateSimple1 = new SimpleDateFormat(" HH:mm:ss");
String str1= (String)stDateSimple1.format(cal.getTime());
System.out.println("str1-->"+str1);
String starttime="8:30:00";
String endtime="10:30:00";
if(starttime<str1 || endtime>str1 ){
System.out.println("Display");
}else{
System.out.println("Dont recortDisplay");
}
我试过这个收到错误,请问如何检查时间条件
谢谢,
SVN
答案 0 :(得分:3)
您可以使用Joda Time。它有非常好的方法,比如isBefore()
以下是一个使用示例:
DateFormat df = new SimpleDateFormat("HH:mm:ss");
String starttime="8:30:00";
String endtime="10:30:00";
DateTimeFormatter fmt = DateTimeFormat.forPattern("HH:mm:ss");
DateTime dateTime1 = fmt.parseDateTime(starttime);
DateTime dateTime2 = fmt.parseDateTime(endtime);
if (dateTime1.isBefore(dateTime2)){
System.out.println("awesome");
}
答案 1 :(得分:1)
您正尝试使用<
运算符比较字符串。您应该将时间字符串格式化为Date对象,然后比较这些日期对象
这样的事情对你有用。
if (new SimpleDateFormat("HH:mm:ss").parse(yourSring).compareTo(new Date()) > 0) {
...
}
由于AM和PM不存在,似乎时间是24小时格式。如果是12小时格式,则必须使用格式字符串"hh:mm:ss"
答案 2 :(得分:1)
你可以试试这个。
// AM/PM Format
public boolean compareTime(String t1, String t2)
{
try
{
SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss a");
long time1 = format.parse(t1).getTime();
long time2 = format.parse(t2).getTime();
return time1 > time2;
}
catch(ParseException e)
{
return false;
}
}
答案 3 :(得分:0)
如果您已经在Calendar
实例使用compareTo()
中设置了时间,如果您想忽略日期部分,请将其设置为某个常用值