1
A
回答
5
try {
formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
date = (Date) formatter.parse("2012-08-16T11:07:10.793");
} catch(ParseException e) {
// It does not match your input
}
還是一如既往地使用正規表示法...
編輯: 考慮到馬巴的錯字。
+1
您當前的格式字符串不起作用。試一試,如果你打印日期變量,你會得到這個日期:* Thu Aug 16 13:19:13 CEST 2012 *。您必須將格式字符串更改爲'yyyy-MM-dd'T'HH:mm:ss.SSS',以毫秒爲單位的格式字符串'S'。就像在他的例子中一樣,將'7933'改爲'793'。現在這個答案是錯誤的,爲什麼upvotes? – maba 2012-08-17 07:37:19
+0
@maba:謝謝,你說得對。 – 2012-08-17 18:02:04
1
正則表達式:
^(\d{4})\D?(0[1-9]|1[0-2])\D?([12]\d|0[1-9]|3[01])(\D?([01]\d|2[0-3])\D?([0-5]\d)\D?([0-5]\d)?\D?(\d{3})?)?$
對不起,我遲到編輯。 如果你只是想檢查日期的模式相匹配,你可以使用這樣的正則表達式:
String date = "2012-08-16T11:07:10.793";
String regex = "^(\\d{4})\\D?(0[1-9]|1[0-2])\\D?([12]\\d|0[1-9]|3[01])(\\D?([01]\\d|2[0-3])\\D?([0-5]\\d)\\D?([0-5]\\d)?\\D?(\\d{3})?)?$";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(date);
if (m.matches()) {
System.out.println("Yes it matches");
} else {
System.out.println("No match");
}
難道你不能只是將輸入轉換爲日期對象,然後執行比較? – Manish 2012-08-17 06:56:14
你甚至嘗試過什麼嗎?或谷歌搜索? – 2012-08-17 07:17:28