用SubString分解出年月日
然后
System.DateTime dateTime = new System.DateTime(Year,Month,Day);
看是否正确

解决方案 »

  1.   

    int  d =  19850213; string str2 = d.ToString  ("####/##/##") ; try
    {
    DataTime ff = Convert.ToDateTime (str2) ;
    }
    catch
    {
    "这不是有效的日期"
    }
      

  2.   

    如果字符串里的日期格式是一定的,那么可以用ParseExact方法:
    try{
    DateTime dt = DateTime.ParseExact(str1, "yyyyMMdd", null);
    }catch(Exception e){
    //日期无效
    }如果不一定的话,可以定义一些常用的格式:
    try{
    string[] formats = {"yyyyMMdd","yyyy-MM-dd"};//常用的格式都给出
    DateTime dt = DateTime.ParseExact(str1,formats,null, (System.Globalization.DateTimeStyles)7);
    }catch(Exception e){
    //日期无效
    }如果格式不一定的话,那可就难了。
      

  3.   

    谢谢帮忙.格式是YYYYMMDD
    :)
      

  4.   

    用孟子的方法肯定可行
    或者用正则表达式:
    string s = "19850231";
    string pattern = @"^([1-2]\d{3})(0[1-9]|1[0-2])([0-3][0-9])$";
    if(Regex.IsMatch(s,pattern))
    {
    ...
    }
    但是作用有限,比如上面的0231也通过了,要精确匹配可能需要一个及其复杂的正则表达式