C# 无法在Windows Phone 7中将字符串解析为DateTime

C# 无法在Windows Phone 7中将字符串解析为DateTime,c#,string,datetime,C#,String,Datetime,我正在尝试将字符串转换为DateTime。但我不能改变信仰 DateTime dt = DateTime.Parse("16/11/2014", CultureInfo.InvariantCulture); Console.WriteLine("Date==> " + dt); 错误是格式化异常 我的输入时间格式是dd/MM/yyyy 请告诉我如何解决我的问题。因为没有dd/MM/yyyy作为标准日期和时间格式,但它有MM/dd/yyyy作为标准日期和时间格式 这就是为什么它认为您的字符

我正在尝试将字符串转换为DateTime。但我不能改变信仰

DateTime dt = DateTime.Parse("16/11/2014", CultureInfo.InvariantCulture);
Console.WriteLine("Date==> " + dt);
错误是格式化异常

我的输入时间格式是dd/MM/yyyy

请告诉我如何解决我的问题。

因为没有dd/MM/yyyy作为标准日期和时间格式,但它有MM/dd/yyyy作为标准日期和时间格式

这就是为什么它认为您的字符串是MM/dd/yyyy格式的原因,但是由于没有,所以您得到了

相反,您可以使用方法指定精确的格式,如

string s = "16/11/2014";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yyyy", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{

}
因为没有将dd/MM/yyyy作为标准日期和时间格式,但它将MM/dd/yyyy作为标准日期和时间格式

这就是为什么它认为您的字符串是MM/dd/yyyy格式的原因,但是由于没有,所以您得到了

相反,您可以使用方法指定精确的格式,如

string s = "16/11/2014";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yyyy", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{

}

如果您知道输入格式,则应使用“ParseExact:

DateTime dt = DateTime.ParseExact(text, "dd/MM/yyyy",
                                  CultureInfo.InvariantCulture);
我总是建议尽可能明确地说明日期/时间格式。它使你的意图非常明确,并避免了几个月和几天走错方向的可能性

正如Soner所述,CultureInfo.InvariantCulture使用MM/dd/yyyy作为其短日期模式,您可以通过以下方式进行验证:

Console.WriteLine(CultureInfo.InvariantCulture.DateTimeFormat.ShortDatePattern)

作为一个温和的插件,您可能需要考虑使用我的项目来处理您的日期/时间处理——除了其他事项之外,它允许您将日期当作日期,而不是日期和时间…

,假定您知道输入格式,您应该用“PARSETACTI:

”指定它。
DateTime dt = DateTime.ParseExact(text, "dd/MM/yyyy",
                                  CultureInfo.InvariantCulture);
我总是建议尽可能明确地说明日期/时间格式。它使你的意图非常明确,并避免了几个月和几天走错方向的可能性

正如Soner所述,CultureInfo.InvariantCulture使用MM/dd/yyyy作为其短日期模式,您可以通过以下方式进行验证:

Console.WriteLine(CultureInfo.InvariantCulture.DateTimeFormat.ShortDatePattern)

作为一个温和的插件,你可能想考虑使用我的项目来处理你的日期/时间-除了其他事情之外,它允许你把日期当作一个日期,而不是一个日期和时间…

谢谢你的回答和解释。你和其他人的解释都很棒。。谢谢你的回答和解释。。你和其他人的解释都很棒。。谢谢