首选

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/