C# 将外语字符串转换为日期

C# 将外语字符串转换为日期,c#,asp.net,string,localization,C#,Asp.net,String,Localization,我有以下意见: 2014年2月27日 2013年11月14日 2013年11月7日 我想将它们全部转换为日期字段,如下所示: 27-02-2014 14-03-2013 17-11-2013 我尝试过这种方法:DateTime enteredate=DateTime.Parse(s)但它不工作,错误消息为: 该字符串未被识别为有效的日期时间。有一个未知的问题 从索引3开始的单词 它显示为荷兰语,您可以通过将new CultureInfo(“nl-nl”)传递到DateTime来解析它。Parse

我有以下意见:

2014年2月27日
2013年11月14日
2013年11月7日

我想将它们全部转换为日期字段,如下所示:

27-02-2014
14-03-2013
17-11-2013

我尝试过这种方法:
DateTime enteredate=DateTime.Parse(s)但它不工作,错误消息为:

该字符串未被识别为有效的日期时间。有一个未知的问题 从索引3开始的单词


它显示为荷兰语,您可以通过将
new CultureInfo(“nl-nl”)
传递到
DateTime来解析它。ParseExact
类似于:

string str = "27 februari 2014";
DateTime dt = DateTime.ParseExact(str, "d MMMM yyyy", 
                        new System.Globalization.CultureInfoCultureInfo("nl-NL"));

使用单<代码> d>代码>同时考虑单日和双日日部分。 要获取格式化输出,请使用:

string formattedDate = dt.ToString("dd-MM-yyyy", System.Globalization.CultureInfoCultureInfo.InvariantCulture);

允许您提供一个CultureInfo,这可能就足够了。如果没有,而且你只有一门外语,你可以简单地用正确的英语单词替换这些单词。

你知道什么是CultureInfo吗?
系统。全球化
我得到了这个错误:文化“nl”是一种中立的文化。它不能用于格式化和解析,因此不能设置为线程的当前区域性。@Xarxas,您是如何得到此错误的?您是否试图将当前区域性设置为
nl
,只需在
DateTime中使用它。ParseExact
yes to nl,这是代码:string str=“27 februari 2014”;DateTime dt=DateTime.ParseExact(str,“dd-MMMM-yyyy”,新文化信息(“nl”);字符串formattedDate=dt.ToString(“dd-MM-yyy”,CultureInfo.InvariantCulture);响应。写入(格式化日期);