在我的代码中,我可以获得两种类型的表示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?我需要某种字符串操作吗?
谢谢,
阿米尔
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而不是抛出异常.