Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 2017年3月1日星期三日期时间字符串格式无效_C#_String_Datetime - Fatal编程技术网

C# 2017年3月1日星期三日期时间字符串格式无效

C# 2017年3月1日星期三日期时间字符串格式无效,c#,string,datetime,C#,String,Datetime,我的应用程序有一个DateTime选择器控件,它以这种格式发送所选日期:“Wed Mar 01 2017”,在服务器端我正在转换.ToDateTime(“Wed Mar 01 2017”)。 所有内容都是从今天开始的,这项工作很好,但是“Wed Mar 01 2017”引发了无效的格式异常。 为什么会这样?您需要使用ParseExact或TryParseExact并指定如下格式: DateTime dt; if(DateTime.TryParseExact("Wed Mar 01 2017","

我的应用程序有一个DateTime选择器控件,它以这种格式发送所选日期:“Wed Mar 01 2017”,在服务器端我正在转换.ToDateTime(“Wed Mar 01 2017”)。 所有内容都是从今天开始的,这项工作很好,但是“Wed Mar 01 2017”引发了无效的格式异常。
为什么会这样?

您需要使用
ParseExact
TryParseExact
并指定如下格式:

DateTime dt;
if(DateTime.TryParseExact("Wed Mar 01 2017","ddd MMM dd yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
    //invalid date
}
它在您的计算机上失败的原因是由于不支持该格式的区域性,否则您的代码应该适用于
en-US
区域性

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
DateTime dt = Convert.ToDateTime("Wed Mar 01 2017");
只需确保您的计算机上的区域性没有更改

为了安全起见,最好使用
InvariantCulture
格式解析日期,这样就可以跨多个区域性支持应用程序

检查

试试这个代码

var date = "Wed Mar 01 2017";
Console.WriteLine(DateTime.ParseExact(date, "ddd MMM dd yyyy", CultureInfo.InvariantCulture));

检查:请标记正确答案并投票选出有用的答案!
var date = "Wed Mar 01 2017";
Console.WriteLine(DateTime.ParseExact(date, "ddd MMM dd yyyy", CultureInfo.InvariantCulture));