2013-11-27 80 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"/>