![](/img/trans.png)
[英]How to tell if the java.util.Date object contains the time portion?
[英]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
輸入驗證沒有任何意義-這僅適用於Date
的String
表示形式。
檢查一下,它將為您工作,
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.