如何使用string類的split方法驗證日期(我的意思是日期不應該無效)? 進一步的細節:每個月應該有他們各自的日子,二月應該有29天,只有當它是一個閏年,日期不應該超過目前的日期。如何使用字符串split方法驗證日期?
回答
我可以電子書籍使用的validate(字符串值)方法從Apache Commons DateValidator:
import org.apache.commons.validator.routines.DateValidator;
...
// Get the Date validator
DateValidator validator = DateValidator.getInstance();
// Validate/Convert the date
Date fooDate = validator.validate(fooString);
if (fooDate == null) {
// error...not a valid date
return;
}
驗證()返回解析的日期是否有效或無效,如果無效。
如果你只想得到真/假,那麼還有另一種布爾方法isValid()。例如:
DateValidator validator = DateValidator.getInstance();
if (validator.isValid(date)) {
System.out.println(date + " is valid");
} else {
System.out.println(date + " is invalid");
}
和兄弟我怎麼把這個到java?我不知道關於Apache。 – user3364497
@ user3364497查看SimpleDateFormat的javadoc;它被集成到Java本身中。更重要的是,一個更好的圖書館來處理時間是喬達時間,如果你想使用外部庫,使用這個而不是Apache的 – fge
哥們我知道這一點,但我沒有包。 – user3364497
在JDK,你必須SimpleDateFormat
來處理這種東西。
例如,爲了驗證一個小時:
final DateFormat fmt = new SimpleDateFormat("HH:mm");
那麼你可以嘗試解析:
fmt.parse(input);
,則會引發ParseException
如果日期是無效的。
當然,可以做許多其他格式。
至於外部庫,如果你必須/想要使用一個,真的只有一個需要考慮:Joda Time。 Java 8的新日期API的靈感來自90 +%,這是一個非常好的庫。注意:JDK和Joda Time的解析器都會在當前時間的日期導出缺失的組件;這意味着如果你在2015年試圖解析包含Feb 29
的字符串,它將會失敗......但是它將在2016年成功,因爲它是一個閏年!
不錯的一個最好的方法。 –
SimpleDateFormat將產生錯誤的結果,例如,嘗試使用String date =「32/02/2014」; – Boris
convert string to date format, and this is easy for validating
public class DateUtil {
// List of all date formats that we want to parse.
// Add your own format here.
//u can use anyone format
private static List<SimpleDateFormat>;
dateFormats = new ArrayList<SimpleDateFormat>() {{
add(new SimpleDateFormat("M/dd/yyyy"));
add(new SimpleDateFormat("dd.M.yyyy"));
add(new SimpleDateFormat("dd.M.yyyy hh:mm:ss a"));
add(new SimpleDateFormat("dd.MMM.yyyy"));
add(new SimpleDateFormat("dd-MMM-yyyy"));
}
};
/**
* Convert String with various formats into java.util.Date
*
* @param input
* Date as a string
* @return java.util.Date object if input string is parsed
* successfully else returns null
*/
public static Date convertToDate(String input) {
Date date = null;
if(null == input) {
return null;
}
for (SimpleDateFormat format : dateFormats) {
try {
format.setLenient(false);
date = format.parse(input);
} catch (ParseException e) {
//Shhh.. try other formats
}
if (date != null) {
break;
}
}
return date;
}
}
- 1. 驗證日期字符串
- 2. 使用動態日期格式驗證日期字符串的最佳方法
- 3. 使用MomentJS驗證日期格式(不是日期字符串)?
- 4. 如何使用Ajax Control Toolkit(CalendarExtender)驗證字符串日期?
- 5. 日期時間和字符串驗證
- 6. 如何使用SPLIT分隔字符串
- 7. 使用PHP驗證rfc2616日期字符串
- 8. 驗證字符串日期而不使用Java中的java.util.Date類
- 9. 將字符串轉換爲日期 - 日期驗證
- 10. 如何使用jQuery驗證驗證日期類型字段
- 11. 如何在java中驗證日期字符串
- 12. 如何驗證字符串是正確的日期時間
- 13. 如何驗證字符串是否與日期jquery
- 14. 如何在Python中驗證日期字符串格式?
- 15. 如何在java中驗證這個時間/日期字符串?
- 16. 如何從自定義驗證方法驗證日期?
- 17. 如何使用jquery驗證php md5字符串驗證
- 18. 如何使用express驗證器驗證字符串數組?
- 19. 如何驗證Rails 3中的日期?爲什麼驗證看到日期而不是字符串
- 20. jQuery的字符串使用區間split()方法
- 21. 如何使用PHP驗證日期?
- 22. 如何使用javascript驗證日期
- 23. 如何使用PHP驗證日期
- 24. 驗證,如果字符串包含日期
- 25. 使用RegEx驗證任何字符串
- 26. 我如何使用Struts驗證器組合使用字段驗證日期
- 27. 使用jQuery驗證的日期驗證
- 28. Oracle使用REGEXP驗證日期字段
- 29. 無法使用日期驗證在jsonschema
- 30. 如何用Joi驗證字符串?
您是否收到日期爲字符串?如果是的話,寫入日期的格式是什麼? – Nopiforyou
以及到目前爲止嘗試過的東西? – hage
嗯,你知道JDK有類來解析日期了嗎? (在這種情況下爲'SimpleDateFormat') – fge