两次比较

时间:2013-01-03 07:14:47

标签: java date time

我试图比较两次,而不是怎么做。我没有任何例子。请告诉我

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

4 个答案:

答案 0 :(得分:3)

您可以使用Joda Time。它有非常好的方法,比如isBefore()

enter image description here

以下是一个使用示例:

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()中设置了时间,如果您想忽略日期部分,请将其设置为某个常用值