不支持由该字符串表示的DateTime,并且该字符串未被识别为有效的DateTime

时间:2019-03-01 04:23:30

标签: c# asp.net

string aa = txtsd.Text;
            string bb = txtendd.Text;
            DateTime dt1 = Convert.ToDateTime(aa);
            DateTime dt2 = Convert.ToDateTime(bb);
            //DateTime dt2 = Convert.ToDateTime(bb,System.Globalization.CultureInfo.GetCultureInfo("ur-PK").DateTimeFormat);
            //DateTime dt2 = DateTime.ParseExact(txtendd.Text.ToString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);
            TimeSpan ts = (dt1 - dt2);

以上我尝试过的代码是用于计算两个日期的,但是我不断遇到两个错误可以帮助我解决两个错误。

错误- 1]日历System.Globalization.GregorianCalendar不支持由字符串表示的DateTime。 2]无法将字符串识别为有效的日期时间。

2 个答案:

答案 0 :(得分:1)

您正在寻找的方法

这是来自用户输入的,我建议使用Try变体

一个示例,如果您知道该格式,而不是您的区域性默认格式

var stringDateTime = "15/01/2013";
DateTime date;
if(DateTime.TryParseExact(stringDateTime, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
   // awesome lets do something
}

答案 1 :(得分:0)

        string aa = "15/01/2000";
        string bb = "20/01/2000";
        DateTime dt1 = DateTime.ParseExact(aa, "dd/MM/yyyy", null);
        DateTime dt2 = DateTime.ParseExact(bb, "dd/MM/yyyy", null);
        TimeSpan ts = (dt1 - dt2);

        Console.WriteLine($"Difference: {ts.Days}");
        Console.ReadKey();