2011-08-03 42 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其复杂得多区域依赖。