我有这种方法,它将返回星期几(星期三):
protected string GetDayOfWeek(string dateTimeString)
{
DateTime result = DateTime.Parse(dateTimeString);
string dayOfWeek = Enum.GetName(typeof(DayOfWeek), result.DayOfWeek);
return dayOfWeek;
}
我在行 DateTime结果上有一个断点来检查传入的字符串,它给出了:
“2014年3月12日星期三00:00:00 GMT”
上面的方法给了我错误:
“FormatException未由用户代码处理”字符串无法识别 作为有效的dateTime。
我做错了什么?我无法接受。
答案 0 :(得分:4)
DateTime.Parse(string)使用当前文化的约定。所以我的猜测是"星期三,2014年3月12日00:00:00 GMT"不是您当前文化中的有效日期。
你可以尝试:
DateTime.Parse(dateTimeString, System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat)
这应该告诉解析器是独立于文化的。
答案 1 :(得分:1)
尝试使用方法DateTime.ParseExact
并为您的输入提供精确的格式字符串。在您的情况下,呼叫应如下所示:
DateTime myDate = DateTime.ParseExact("Wed, 12 Mar 2014 00:00:00 GMT", "ddd, dd MMM yyyy HH:mm:ss 'GMT'K", System.Globalization.CultureInfo.InvariantCulture);
答案 2 :(得分:1)
您可以使用:
DateTime.Now.DayOfWeek;
与DayOfWeek
类进行比较。
答案 3 :(得分:0)
这里有两件事:
正如Tor-Erik建议您可以使用DateTime.Parse和不变文化来获取DateTime。
DateTime.Parse(
dateTimeString,
System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat)
然后正如HevilávioSoares建议您应该使用DateTime对象的内置函数来获取星期几。
DateTime.Now.DayOfWeek;
最好将问题分开并重用现有功能,而不是编写自己的功能。