我必须检查循环中的值是普通string
还是可以转换为DateTime
。但DateTime.TryParse
甚至接受" 1/10"。
List<string> lst = new List<string>() { "1/1/2016 12:00:00 AM", "1/10" };
foreach (string item in lst)
{
DateTime dt;
if (DateTime.TryParse(item, out dt))
{
//Pick date values and do something
}
else
{
//Do something with string value
}
}
有人可以帮助我吗,它怎么可能?
答案 0 :(得分:2)
值来自循环。 datetime parse验证第二个 一个作为日期
您可以使用DateTime.TryParseExact
代替DateTime.TryParse
:
string[] strings = {"1/1/2016 12:00:00 AM", "1/10" };
foreach (var str in strings)
{
DateTime dt;
if (DateTime.TryParseExact(str, "d/M/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None , out dt))
{
Console.WriteLine("is a date: " + str);
}
}
TryParse
偶数"1/10"
被接受为有效的DateTime。