簡體   English   中英

Java:如何比較兩個時間/日期

[英]Java: How to compare two Times/Dates

我正在這樣從我的記事本(數據庫)中檢索值

            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

如何將該值與其他時間進行比較

謝謝

這是您要尋找的格式。 它將解析兩位數的月/日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對此進行了驗證。 現在,我看不到您在任何地方比較日期。 您可以使用Calendarafter()before()方法,也可以在Date上調用getTime()並使用<> (更快)。 這完全取決於您要比較的內容。

這是如何執行此操作的示例:

/**
 * 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();
    }
  }
}

您的日期應為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驗證后編輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM