解决方案 »

  1.   

    你用DateTime干啥?
    不是有TimeSpan给你用么?
      

  2.   

    DateTime.Day
    DateTime.Hour
    DateTime.Minutes
    DateTime.Seconds为DateTime写个扩展方法
      

  3.   

    额不好意思我没说清楚 是Mysql的datetime转换 这种0000-00-05 23:50:00格式在c#中是没法转成datetime的
      

  4.   

    DateTime.TryParse
    DateTime.Parse
    这俩方法不行的话,你就用正则吧
      

  5.   

    额不好意思我没说清楚 是Mysql的datetime转换 这种0000-00-05 23:50:00格式在c#中是没法转成datetime的DateTime data;
    TimeSpan timeSpan= data - DateTime.MinValue;
    timeSpan.ToString();
      

  6.   

    是能转成DateTime了,但是还是有问题。            string date = "0000-00-05 23:50:00";
                DateTime d1;
                DateTime.TryParse(date, out d1);
                string str = d1.Day.ToString() + "天" + d1.Hour.ToString() + "小时" + d1.Minute.ToString() + "分钟" + d1.Second.ToString() + "秒";
                MessageBox.Show(str);
                TimeSpan interval = new TimeSpan(d1.Ticks);
                MessageBox.Show(interval.ToString());结果是
    1天0小时0分钟0秒

    00:00:00
      

  7.   

    额不好意思我没说清楚 是Mysql的datetime转换 这种0000-00-05 23:50:00格式在c#中是没法转成datetime的DateTime data;
    TimeSpan timeSpan= data - DateTime.MinValue;
    timeSpan.ToString();

    不行额            string date = "0000-00-05 23:50:00";
                DateTime d1;
                DateTime.TryParse(date, out d1);
                TimeSpan timeSpan = d1 - DateTime.MinValue;
                MessageBox.Show(timeSpan.ToString());这个结果是00:00:00
      

  8.   

    额不好意思我没说清楚 是Mysql的datetime转换 这种0000-00-05 23:50:00格式在c#中是没法转成datetime的DateTime data;
    TimeSpan timeSpan= data - DateTime.MinValue;
    timeSpan.ToString();

    不行额            string date = "0000-00-05 23:50:00";
                DateTime d1;
                DateTime.TryParse(date, out d1);
                TimeSpan timeSpan = d1 - DateTime.MinValue;
                MessageBox.Show(timeSpan.ToString());这个结果是00:00:00
    你的TryParse本来就失败了
    c#的时间从0000-01-01开始,你的出错了怎么能继续下去
      

  9.   

    额不好意思我没说清楚 是Mysql的datetime转换 这种0000-00-05 23:50:00格式在c#中是没法转成datetime的DateTime data;
    TimeSpan timeSpan= data - DateTime.MinValue;
    timeSpan.ToString();

    不行额            string date = "0000-00-05 23:50:00";
                DateTime d1;
                DateTime.TryParse(date, out d1);
                TimeSpan timeSpan = d1 - DateTime.MinValue;
                MessageBox.Show(timeSpan.ToString());这个结果是00:00:00
    你的TryParse本来就失败了
    c#的时间从0000-01-01开始,你的出错了怎么能继续下去
    TryParse后的结果是0001/1/1 0:00:00。
    那这个怎么整
      

  10.   

    这是从数据库取的数据 = =数据库里也不能设计为DateTime对应的类型。应该设计为Time对应的,或者设计为long对应的类型。
      

  11.   

     DateTime.TryParse(DateTime.Now.ToString(), out d1);
    这样没问题的吖
      

  12.   

    这是从数据库取的数据 = =数据库里也不能设计为DateTime对应的类型。应该设计为Time对应的,或者设计为long对应的类型。
    因为时间会从1年到几秒不等 Time的范围是-838:59:59到838:59:59 满足不了要求
      

  13.   

    是能转成DateTime了,但是还是有问题。            string date = "0000-00-05 23:50:00";
                DateTime d1;
                DateTime.TryParse(date, out d1);
                string str = d1.Day.ToString() + "天" + d1.Hour.ToString() + "小时" + d1.Minute.ToString() + "分钟" + d1.Second.ToString() + "秒";
                MessageBox.Show(str);
                TimeSpan interval = new TimeSpan(d1.Ticks);
                MessageBox.Show(interval.ToString());结果是
    1天0小时0分钟0秒

    00:00:00出错是因为0000-00-05 年份和月份不能为0.你改成0001-01-05应该就没事
      

  14.   

    额 我的数据是从Mysql中取的不是Now...
      

  15.   

    给String写个扩展方法就好了。你自己去写ToRightString()方法。
      

  16.   

     class Program
        {
            static void Main(string[] args)
            {
                string date = "0000-00-05 23:50:00";
                Console.WriteLine( date.ToRightString());
                Console.Read();
            }
        }
        static class String
        {
            public static string ToRightString(this string str)
            {
                string result = string.Empty;
                var list = str.Split(new char[] { ' ', ':', '-' });
                if (list.Count() > 5)
                {
                    int tmp = int.Parse(list[0]);
                    if (tmp > 0)
                        result += tmp.ToString() + "年";
                    tmp = int.Parse(list[1]);
                    if (tmp > 0)
                        result += tmp.ToString() + "月";
                    tmp = int.Parse(list[2]);
                    if (tmp > 0)
                        result += tmp.ToString() + "日";
                    tmp = int.Parse(list[3]);
                    if (tmp > 0)
                        result += tmp.ToString() + "时";
                    tmp = int.Parse(list[4]);
                    if (tmp > 0)
                        result += tmp.ToString() + "分";
                    tmp = int.Parse(list[4]);
                    if (tmp > 0)
                        result += tmp.ToString() + "秒";
                }
                return result;
            }
        }
      

  17.   

    额不好意思我没说清楚 是Mysql的datetime转换 这种0000-00-05 23:50:00格式在c#中是没法转成datetime的DateTime data;
    TimeSpan timeSpan= data - DateTime.MinValue;
    timeSpan.ToString();

    不行额            string date = "0000-00-05 23:50:00";
                DateTime d1;
                DateTime.TryParse(date, out d1);
                TimeSpan timeSpan = d1 - DateTime.MinValue;
                MessageBox.Show(timeSpan.ToString());这个结果是00:00:00
    你的TryParse本来就失败了
    c#的时间从0000-01-01开始,你的出错了怎么能继续下去
    TryParse后的结果是0001/1/1 0:00:00。
    那这个怎么整
    你的mysql字段类型用BIGINT吧
    然后用TimeSpan.FromTicks(long)转成TimeSpan
      

  18.   

    额不好意思我没说清楚 是Mysql的datetime转换 这种0000-00-05 23:50:00格式在c#中是没法转成datetime的DateTime data;
    TimeSpan timeSpan= data - DateTime.MinValue;
    timeSpan.ToString();

    不行额            string date = "0000-00-05 23:50:00";
                DateTime d1;
                DateTime.TryParse(date, out d1);
                TimeSpan timeSpan = d1 - DateTime.MinValue;
                MessageBox.Show(timeSpan.ToString());这个结果是00:00:00
    你的TryParse本来就失败了
    c#的时间从0000-01-01开始,你的出错了怎么能继续下去
    TryParse后的结果是0001/1/1 0:00:00。
    那这个怎么整
    你的mysql字段类型用BIGINT吧
    然后用TimeSpan.FromTicks(long)转成TimeSpan
    回头我问问数据库能不能改,谢谢啦
      

  19.   

    貌似这样能够的格式不能存在SQL吧