无法将日期字符串转换为DateTime

时间:2015-10-12 19:42:36

标签: c# datetime type-conversion

我有一个字符串:

string test="September 9th, 2015"

我需要将其转换为DateTime格式,所以我尝试了:

DateTime dt= Convert.ToDateTime(test);

并获得异常(String未被识别为有效的DateTime)。我想这可能是因为" th"过了一天。有没有简单的方法将此字符串转换为DateTime?

3 个答案:

答案 0 :(得分:6)

尝试此功能

private static DateTime ParseDate(string date)
{
   string[] formats =
        {
            "MMMM d\"st\", yyyy",
            "MMMM d\"nd\", yyyy",
            "MMMM d\"rd\", yyyy",
            "MMMM d\"th\", yyyy"
        };
    DateTime dt;
    if (DateTime.TryParseExact(date, formats, CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
    {
            return dt;
    }

    throw new InvalidOperationException("Invalid Input");

}

使用

进行呼叫
DateTime dt= ParseDate(test);

答案 1 :(得分:2)

尝试使用DateTime.ParseExact,你也可以传递一个格式字符串。

答案 2 :(得分:0)

使用此方法,因为您正在解析不转换它的字符串。

DateTime dt = DateTime.ParseExact(test, "MMMM d\"th\", yyyy")

可在此处找到更多信息https://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx