Java:如何比较两个时间/日期

时间:2012-01-26 04:18:26

标签: java

我正在从我的记事本(数据库)中检索这个

的值
            strLine = br.readLine().trim();
            if ((strLine.length()!=0) && (strLine.charAt(0)!='#')) {
            String[] teachers = strLine.split("\\s+");
             Interviews interview = new Interviews();
             interview.setTime(teachers[4]+" "+ teachers[5]);

此时我的时间价值是(给定为调试器)

             "2011-9-5 0:00"

我希望将此时间与其他时间进行比较

但是当我尝试以日期格式解析这些值时

              SimpleDateFormat df=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
               Date d1=df.parse(interviewList.get(0).getTime());

它给了我错误

             java.text.ParseException: Unparseable date: "2011-9-5 0:00"

这是我记事本(数据库)2011-9-5 0:00

中的格式

如何将此值作为时间与其他时间进行比较

由于

3 个答案:

答案 0 :(得分:2)

这是您正在寻找的格式。它将解析单/双位数月/日yyyy-MM-dd hh:mm。请注意,mm表示分钟,因此您应该使用MM几个月。

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
System.out.println(df.parse("2011-9-5 9:00"));

打印

Mon Sep 05 09:00:00 EDT 2011

使用jdk 1.6验证了这一点。现在,我没有看到你在任何地方比较日期。您可以使用Calendar的{​​{3}}和after()方法,也可以在日期调用before()并使用<>(更快)。这一切都取决于你所比较的东西。

答案 1 :(得分:1)

以下是如何执行此操作的示例:

/**
 * Date difference, as minutes (abs)
 */

public class DateDiff {

  static SimpleDateFormat df=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");

  private String sD1;
  private String sD2;

  public DateDiff(String sD1, String sD2) {
    this.sD1=sD1;
    this.sD2=sD2;
  }
  /**
   * Parse date strings in format like: 2005-01-01 22:10:35
   */
  public long getDifferenceInMinutes () throws ParseException {
    Date d1=df.parse(sD1);
    Date d2=df.parse(sD2);
    long d1Ms=d1.getTime();
    long d2Ms=d2.getTime();
    return Math.abs((d1Ms-d2Ms)/60000);
  }
  /**
   ***************** MAIN *******************
   * @param args
   */
  public static void main(String[] args) {
    DateDiff dd = new DateDiff("2005-01-01 22:10:35",
                               "2005-01-01 23:11:35");
    try {
      long diff=dd.getDifferenceInMinutes();
      System.out.println("Time difference (abs): " + diff);
    }
    catch (ParseException ex) {
      ex.printStackTrace();
    }
  }
}

答案 2 :(得分:0)

您的约会日期应为yyyy-MM-dd hh:mm:ss格式。

一旦您的日期格式如上,您就可以获得日期对象

 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");             
    Date d1=df.parse(dateToPars); 

d1.after(otherDateYouWantTocompare);  OR 
d1.before(otherDateyouWantToCompare); 

Pangea验证后编辑。