2013-11-27 79 views
0

我有用于工作的代码,但现在已移动到新的服务器并已停止工作,因为27-11-2013未被识别为有效的日期时间。它使用,所以我不想做任何代码更改,因为显然需要发生服务器配置更改。但是哪个区域/区域设置会影响DateTime.Parse?我试过改变了很多人,但还没有人工作过。DateTime.Parse不再识别英国格式

哦,我不想/不能使用ParseExact ...

+0

'DateTime.Parse'使用当前的文化,如果你不指定一个不同。 –

+0

您可能必须更改设置为运行应用程序池的用户的区域设置。在服务器端解决方案中,ParseExact和/或指定文化通常更健壮。 – Snorre

+0

如果您不想进行任何代码更改,为何不在[服务器故障](http://serverfault.com/?as=1)中发布此内容?对于Windows 7,本页详细介绍了如何更改[系统区域设置](http://windows.microsoft.com/en-us/windows7/change-the-system-locale) –

回答

3

DateTime.Parse使用当前的文化,如果你不指定一个不同的。

DateTime dt= DateTime.Parse("27-11-2013", new CultureInfo("en-gb")); 
+0

我在问题中说我不想做任何代码更改 - 因为这确实有效。为了实现这一目标,文化需要在服务器级别进行更改? – Paul

+1

@Paul你为什么不想改变代码?显然,你的代码很容易出错。 – dcastro

+0

@Paul:看一看:[MSDN:How to:设置ASP.NET网页全球化的文化和UI文化](http://msdn.microsoft.com/en-us/library/bz9tc508.ASPX) –

1

试试这个:

CultureInfo customCulture = new CultureInfo("en-GB"); 
DateTime myDateTime = DateTime.Parse("27-11-2013", customCulture.DateTimeFormat); 
+0

Arrggg蒂姆13秒前在我^^ – Trax

0

你可以做到这一点在web.config中像下面

<globalization culture="en-GB" uiCulture="en-GB"/>