我有一个字符串:
string test="September 9th, 2015"
我需要将其转换为DateTime格式,所以我尝试了:
DateTime dt= Convert.ToDateTime(test);
并获得异常(String未被识别为有效的DateTime)。我想这可能是因为" th"过了一天。有没有简单的方法将此字符串转换为DateTime?
答案 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