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