簡體   English   中英

使用Java SimpleDateFormat查找最大日期

[英]Using Java SimpleDateFormat to find max date

我已經多年沒有使用Java編程了,但是現在我必須更改前一段時間編寫的程序。 在此程序中,我需要讀取QIF文件並查找具有最大日期(Dmm-dd-yyyy)的qif記錄。 我無法在程序中使用它,因此我編寫了一個簡單的測試來演示我遇到的問題。 我認為還有其他方法可以做到這一點,例如列表和集合。 但是我仍然想知道為什么使用SimpleDateFormat不起作用。 注意在輸出中,此方法產生了7月的最大值,但似乎忽略了所有8月的日期。

謝謝,邁克

導入java.text.SimpleDateFormat; 導入java.util.Date;

class DateParser {

    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("mm-dd-yyyy");
        Date nextDate = null;
        Date maxDate = null;
        String nextStrDate = null;
        String maxStrDate = null;

        //Fill date array.
        String date[] = {"07-14-2014","07-22-2014","07-31-2014",
                         "08-01-2014","08-04-2014","08-06-2014"};

        try {
            //Start with early maximum date.
            maxDate = sdf.parse("01-01-1800");
            // Find Max date in array.
            for (int i=0; i<6; ++i) {
                nextStrDate = date[i];
                nextDate = sdf.parse(nextStrDate);
                if(nextDate.after(maxDate)){
                    maxStrDate = nextStrDate;
                    maxDate = nextDate;
                }
                System.out.println( "Next Date = " + nextStrDate);
            }
            System.out.println("\nMax Date = " + maxStrDate);
        } catch (Exception e) { 
        System.out.println("Got error:" + e);
        }
    }
}

OUTPUT

Next Date = 07-14-2014
Next Date = 07-22-2014
Next Date = 07-31-2014
Next Date = 08-01-2014
Next Date = 08-04-2014
Next Date = 08-06-2014

Max Date = 07-31-2014

您的格式不正確,這

SimpleDateFormat sdf = new SimpleDateFormat("mm-dd-yyyy");

應該

SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");

因為(根據SimpleDateFormat文檔),

 Letter Date or Time Component Presentation Examples ... M Month in year Month July; Jul; 07 ... m Minute in hour Number 30 

Java Docs ....

m分鍾

你想要的是

一年中的M個月

mm-dd-yyyy更改為MM-dd-yyyy

暫無
暫無

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

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