0

我正在尝试转换

string date = "31.03.2013" 

到一个DateTime。这是我的代码:

Convert.ToDateTime(date,CultureInfo.InvariantCulture);

我收到格式异常。

根据http://msdn.microsoft.com/en-us/library/vstudio/cc165448.aspx它应该可以工作。谢谢

4

5 回答 5

5

不变区域性基于en-US,其中.不是日期分隔符。

您需要使用正确的区域性,例如fr-FR,它确实.用作日期分隔符。

您还可以使用DateTime.ParseExactDateTime.TryParseExact使用确切的格式字符串。

Convert.ToDateTime("31.03.2013", CultureInfo.GetCultureInfo("fr-FR"))

或者

DateTime.ParseExact("31.03.2013",
                    "dd.MM.yyyy",
                    CultureInfo.InvariantCulture)

将工作。

于 2013-03-25T11:02:51.450 回答
0

怎么样

DateTime.ParseExact(date,"dd.MM.yyyy",null);
于 2013-03-25T11:05:12.860 回答
0

您可以尝试使用 DateTime.ParseExact 方法。它应该为您解决问题。

DateTime.ParseExact("31.03.2013", "dd.MM.yyyy", CultureInfo.InvariantCulture);
于 2013-03-25T11:05:25.210 回答
0

使用此代码 -

DateTime.ParseExact(date, "dd.MM.yyyy", CultureInfo.InvariantCulture);
于 2013-03-25T11:07:00.703 回答
0

你可以用DateTime.TryParseExact试试这个:

string date = "31.03.2013";
DateTime dateConverted;
DateTime.TryParseExact(date, new string[] { "dd.MM.yyyy" }, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dateConverted);
Console.WriteLine(dateConverted);
于 2013-03-25T11:11:17.207 回答