2013-01-08 44 views
3

我在Windows Azure中有兩個環境(部署)。 在一個環境中(比如d ENV)的聲明不同窗口中的不同日期格式天青解區環境

DateTime.Now.ToString("dd/mm/yyyy") 

回報"08-01-2013"

,並在另一個環境中(比如êENV)返回"08/01/2013"

我想不出爲什麼會發生如此。

+0

[SO](http://stackoverflow.com/questions/15579608/windows-azure-having-troubles-with-date-format) – Jude

回答

1

我認爲你的環境附加設置是不同的。

你d環境使用日期額外設置使用-,您的E環境下使用/您的日期格式更改爲dd.MM.yyyy環境E.

對於Windows 7,請按照Control Panel-->Language and Region-->Change the date, time and number format-->Additional Settings--> Date

enter image description here

如果您想在你的代碼部分的一些變化,你可以在你的代碼中使用CultureInfo.InvariantCulture屬性。

不變的文化是文化不敏感的;它與 的英語,但不與任何國家/地區相關聯。您可以在呼叫 的CultureInfo實例化方法中使用空字符串(「」)來指定 不變文化名稱。 CultureInfo.InvariantCulture也 檢索固定區域性的實例。它可以在幾乎 任何方法System.Globalization命名空間中,需要 的培養中使用。

假設您想爲法語CultureInfo這兩種環境。

CultureInfo frFr = new CultureInfo("fr-FR"); 
string s = DateTime.Now.ToString("dd/mm/yyyy", frFr); 
+0

:這從試圖找到一種文化替代字符停止解析器我可以在Windows中使用Windows Azure中的某個配置文件來做你正在做的事情嗎? –

+1

@SujithKp我從來沒有使用Windows Azure的,但有沒有在Azure中的任何配置選項?看看asp.net版本http://support.microsoft.com/kb/306162/en-us –

0

您正在使用,從目前Culture使用設置ToString超載。格式字符串中的斜槓字符被視爲當前文化的日期字段分隔符的替換字符。

如果要使用明確的日期格式字符串,還可以使用明確的格式提供程序。在這種情況下,我建議使用在InvariantCulture格式;例如

using System.Globalization; 
... 
var x = DateTime.Now.ToString("dd/mm/yyyy", CultureInfo.InvariantCulture); 

您還可以修改格式字符串以使用明確的斜線,方法是將其用單引號引起來。

var x = DateTime.Now.ToString("dd'/'mm'/'yyyy"); 
+0

在我的上下文中,這種方法的問題是DateTime.Now.ToString(「dd/mm/yyyy」)被大量使用。因此,當它已經在E env(這是我們的目標環境)中工作時,我不想到處改變。 –