无法将日期字符串转换为日期时间

本文关键字:日期 时间 转换 字符串 | 更新日期: 2023-09-27 18:17:16

我有一个字符串:

string test="September 9th, 2015"

我需要将其转换为日期时间格式,所以我尝试:

DateTime dt= Convert.ToDateTime(test);

并得到一个异常(字符串未被识别为有效的日期时间)。我想这可能是由于"th"之后的一天。是否有一个简单的方法来转换这个字符串到日期时间?

无法将日期字符串转换为日期时间

试试这个函数

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);

尝试DateTime。ParseExact也可以传递格式字符串

当您正在解析字符串而不是转换它时,请使用此

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

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