簡體   English   中英

我有一個日期(字符串),格式為dd-mon-yyyy,我想將此日期與系統日期進行比較

[英]I have a date in(string) in dd-mon-yyyy format and I want to compare this date with system date

我有一個日期格式為dd-mon-yyyy的(字符串),我想將此日期與系統日期進行比較。

例如。 我有2010年10月12日,我想用相同格式的系統日期來完成此操作

您可以使用SystemDateFormat類來解析您的String,例如

final DateFormat fmt = new SimpleDateFormat("dd-MMM-yyyy");
final Date input = fmt.parse("12-OCT-2010");
if (input.before(new Date()) {
     // do something
}

請注意, SimpleDateFormat不是線程安全的,因此如果您有多個線程來訪問代碼,則需要將它們包裝在ThreadLocal

您可能也對Joda感興趣,它提供了更好的日期API

使用SimpleDateFormat http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

    SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy");
    String d = "12-OCT-2010";
    try {
        Date formatted = f.parse(d);
        Date sysDate = new Date();
        System.out.println(formatted);
        System.out.println(sysDate);
        if(formatted.before(sysDate)){
            System.out.println("Formatted Date is older");
        }
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我建議使用Joda Time。 您可以非常簡單地將String解析為LocalDate對象,然后從系統時鍾構造另一個LocalDate 然后,您可以比較這些日期。

使用simpledateformat-

    String df = "dd-MMM-yyyy";
    SimpleDateFormat sdf = new SimpleDateFormat(df);
    Calendar cal = Calendar.getInstance();

    /* system date */
    String systemdate = sdf.format(cal.getTime());
    /* the date you want to compare in string format */
    String yourdate = "12-Oct-2010";
    Date ydate = null;
    try {
        ydate = sdf.parse(yourdate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    yourdate = sdf.format(ydate);
    System.out.println(systemdate.equals(yourdate) ? "true" : "false");

暫無
暫無

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

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