给定一个时间串和它对应的格式,怎么转成一个DateTime对象
如"1977-02-10" -- "yyyy-MM-dd"
  "03-31-2004 15:30:27" -- "MM-dd-yyyy HH:mm:ss"

解决方案 »

  1.   

    Convert.ToDateTime();
    如果不行,就用楼上的办法吧.
      

  2.   


    参考,如果是标准的时候格式,是可以根据字符生成时间或是日期的.采用DataTime.Parse()方法string tiString = "1977-02-10";
    DateTime dt1 = DateTime.Parse(tiString);
    //MessageBox.Show(dt1.Day.ToString()+"-"+dt1.Year.ToString()+"-"+dt1.Month.ToString());
      

  3.   

    同意楼上的建议,现转化试下
    或者运用split分割字符串,然后再重新组合成时间 
      

  4.   

    如果是从数据库中查询出来的可以在查询时通过To_date()涵数转换.
      

  5.   

    DateTime有TryParseExact()或ParseExact()方法
    string s = "20070419090909";
    DateTime vDateTime;
    if (DateTime.TryParseExact(s, "yyyyMMddHHmmss", null,
        System.Globalization.DateTimeStyles.None, out vDateTime))
        MessageBox.Show(vDateTime.ToString());
    else MessageBox.Show("输入错误");
      

  6.   

    使用DateTime.TryParse或是DateTime.TryParseExact来转换。
      

  7.   

    我觉得吧,既然时间要转换格式,还不如限制用户输入呢
    找个比较好的JS的时间选择控件,或者就用MS的也行,让客户选择时间输入,不要手书
    这样时间的格式就固定了,也不用费尽去想怎么转换了,而且选择输入比手动输入也方便啊
      

  8.   

       是的, DataTime dt=ConvertToDateTime(str)
     
        用MS的控件也行,让用户选择,以免老错...
      

  9.   

    System.DateTime.Parse()方法可以适用于用户输入的各种日期时间格式。
      

  10.   

    伴水不是已经告诉你怎么做了吗,就差自己写成方法了private DateTime StrToDateTime(string src, string format)
    {
        DateTime dt;
        if (DateTime.TryParseExact(src, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
            return dt;
        else
            return DateTime.MinValue;
    }
    //调用
    DateTime test = StrToDateTime(textBox1.Text, textBox2.Text);
    if(test != DateTime.MinValue)
        MessageBox.Show(test.ToString("yyyy-MM-dd HH:mm:ss"));