如题,比如我想把字符串"200807"转成日期:string strDate = "200807";Datetime dateDate1 = DateTime.Parse(strDate );      // 出错
Datetime dateDate2 = Convert.ToDateTime(strDate );  // 也出错还望高手指点,谢谢!

解决方案 »

  1.   

    弄成2008-07这种格式就行了 不过转换出来的datetime会是08年7月的第一天零时
      

  2.   

            string dateStr = "200807";
            dateStr = dateStr.Insert(4, "-");        DateTime date = DateTime.Parse(dateStr);
      

  3.   


    说白了就是想写个共通的方法,传进去一个6位的YYYYMM字符串,返回一个yyyyMM的日期型变量。当然,如果有高手再加上如何判断这个字符串是不是符合yyyyMM型的字符串就更好了:)
      

  4.   


            static void Main(string[] args)
            {
                string str = "200819";
                try
                {
                    DateTime dt = GetDateTime(str);
                    Console.WriteLine(dt.ToString("yyyy-MM"));
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }        public static DateTime GetDateTime(string str)
            {
                if (str.Length != 6)
                    throw new Exception("位数不为6");
                DateTime dt = new DateTime();
                str = str.Insert(4, "-");
                if (DateTime.TryParse(str, out dt))
                    return dt;
                else
                    throw new Exception("输入字符串不正确");
            }
      

  5.   

    谢谢7楼的ojlovecd,你写的代码太经典了,收藏了!
      

  6.   

    str = str.Insert(4, "-");
                if (DateTime.TryParse(str, out dt))
                    return dt;
      

  7.   

    顺便问一下,如果是要判断YYYYMMDD格式的呢?比较经典的做法是? 就是判断一个传进去的字符串是否为YYYYMMDD的日期,是的话显示OK,不是的话显示NG。
      

  8.   

    这个最好了,呵呵,马上结贴
        public static bool IsDateyyyyMM(string value)
        {
            DateTime dt;        try
            {
                dt = DateTime.ParseExact(value, "yyyyMM", null);
            }
            catch
            {
                return false;
            }
            return true;
        }
      

  9.   

    DateTime.ParseExact(str.Substring(11),"yyMMdd",new System.Globalization.CultureInfo("zh-CN",true));