2011-08-03 43 views
1

是否有一種將SimpleDateFormat日期格式轉換爲Java中的正則表達式的通用方法?將SimpleDateFormat日期格式轉換爲正則表達式

+0

你能舉一個你想要的例子嗎? –

+0

我想驗證一個日期字符串,但我不能使用SimpleDateFormat,因爲它是一個更大的正則表達式的一部分(我不知道該做什麼2部分) – DanielB

回答

1

不,沒有準備好使用。而正則表達式不具備日期約束的知識 - 例如GMT是什麼,或者am/pm是什麼。對於最簡單的情況下,你可以使用\d{2}-\{2}-\d{4}dd-MM-yyyy),否則堅持SimpleDateFormat(或喬達時間DateTimeFormat

3

對於簡單的表達式,你可以做

String dateFormat = "yyyy/MM/dd HH:mm:ss.SSS"; 
String regexFormat = dateFormat.replaceAll("[mHsSdMy]", "\\d"); 

但是生產一些東西,驗證要複雜得多。例如當MM = 03時,dd必須介於01和31之間,但是當MM = 02時,dd必須介於01和28或29之間(取決於年份)

如果使用MMM,DDD,ZZZ其複雜得多區域依賴。