簡體   English   中英

如何判斷現有的java.util.Date是否與特定格式匹配

[英]How to tell if an existing java.util.Date matches a particular format

我正在傳遞一個java.util.Date實例,需要確保它符合MM/dd/YYYY格式。 如何執行這種驗證(沒有像Joda Time這樣的庫)? 我檢查了SimpleDateFormat的API方法,但沒有任何事情是顯而易見的贏家。 提前致謝!

java.util.Date本身沒有格式-只是自1.1.1970 01:00以來的毫秒的內部long表示形式

java.util.Date封裝自紀元以來的毫秒數。 它沒有格式的概念。 因此, Date輸入驗證沒有任何意義-這僅適用於DateString表示形式。

檢查一下,它將為您工作,

    String s = "2013-05-07";
    try {
        Date date = new SimpleDateFormat("yyyy/MM/dd").parse(s);
        System.out.println(date+" Format of date recognized");

    } catch (ParseException e) {
        e.printStackTrace();
        System.out.println("unable to recognize the date format");
    }

此代碼將完美運行,只有格式為yyyy / MM / dd的String可以正常工作,其余所有都將引發異常。

指定日期/時間解析是否寬松。 通過寬大的解析,解析器可以使用啟發式方法來解釋與該對象的格式不完全匹配的輸入。 在嚴格分析的情況下,輸入必須與該對象的格式匹配。

SimpleDateFormat ft = new SimpleDateFormat("MM/dd/YYYY");
ft.setLenient(false); // This will result in a ParseException when an invalid day and/or month
System.out.println(ft.format(ft.parse(s))); 

暫無
暫無

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

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