如何在c#中将字符串"MM-DDTHH:mm"转换为DateTime?

Dar*_*dar 3 c# datetime

在我的代码中,我可以获得两种类型的表示dateTime的字符串:

1."2013-09-05T15:55"

2."09-05T19:10"

如何将其转换为有效的DateTime?

我尝试了以下代码,但它引发了第二种格式的异常:

String departureDateStr = "09-05T19:10";  
DateTime dt = Convert.ToDateTime(departureDateStr);
Run Code Online (Sandbox Code Playgroud)

如何将第二种类型的字符串转换为有效的DateTime?我需要某种字符串操作吗?

谢谢,

阿米尔

key*_*rdP 8

DateTime.TryParseExact有一个重载,允许您将多种格式作为数组传递.然后将每个日期字符串与数组中的各种格式进行比较,这样您就不需要提前知道要查找哪种格式.

string d1 = "2013-09-05T15:55";
string d2 = "09-05T19:10";

string[] formats = new string[] { "yyyy-MM-ddTHH:mm", "MM-ddTHH:mm" };
List<string> dates = new List<string>() { d1, d2 };

foreach (string date in dates)
{
    DateTime dt;
    if (DateTime.TryParseExact(date, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
    {
        //dt successfully parsed
    }
}
Run Code Online (Sandbox Code Playgroud)

TryParseExact 如果数组中的所有格式都与输入匹配,也会返回false而不是抛出异常.