我正在通过网站解析日期时间来获取星期几,星期一,年份,时间,使用 这三种方法在我测试过的所有其他网站上运行良好,但没有使用one,这当然是我需要使用的网站。
protected string GetDayOfWeek(string dateTimeString)
{
DateTime result = DateTime.Parse(dateTimeString);
string dayOfWeek = Enum.GetName(typeof(DayOfWeek), result.DayOfWeek);
return dayOfWeek;
}
protected string GetTimeOnly(string dateValue)
{
return System.DateTime.Parse(dateValue).ToString("hh:mm");
}
protected string GetDateOnly(string dateValue)
{
return System.DateTime.Parse(dateValue).ToString("ddd, MMM d, yyyy");
}
它一直给我这个错误:
System.FormatException不受用户代码管理 HResult = -2146233033 Message =字符串未被识别为有效的DateTime
我花了很多时间试图解决这个问题而没有成功。它工作正常,直到昨天。如果我访问网站或在阅读器中检查这些信息,那么日期时间就在那里,即使我检查变量,时间就在那里。
我错过了什么?任何提示?
更新 我甚至尝试用雅虎管道混搭几个站点并且它正在工作但是只要我添加上面提到的站点就会给我错误。显然问题是由支线网站上的某些东西产生的,但我找不到原因。
答案 0 :(得分:2)
因为你的字符串没有标准的日期/时间格式。这就是你的DateTime.Parse
失败的原因。
您可以使用DateTime.ParseExact
方法;
string dateTimeString = "Sat, 01 Mar 2014 06:00:00 +0100";
var date = DateTime.ParseExact(dateTimeString,
"ddd',' dd MMM yyyy HH:mm:ss K",
CultureInfo.InvariantCulture);
Console.WriteLine(date);
输出将是;
3/1/2014 5:00:00 AM
这里有 demonstration
。
有关更多信息,请查看;