首选
DateTime dt;
bool flag = DateTime.TryParse("时间字符串", out dt);
if(flag)
{
//符合
}
else
{
//不符合
}
另外如果精确到日,可以这样写
string s = "2012-04-23";
DateTime dt;
if (DateTime.TryParseExact(s, "yyyy-MM-dd", null, DateTimeStyles.None, out dt))
//验证通过
精确到日,正则也是可以
^((?!0000)[0-9]{4}-((0?[1-9]|1[0-2])-(0?[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$
但说实话,这不是正则干的活
黑色头发:http://heisetoufa.iteye.com/