2011-04-12 77 views
9

我有以下代碼日期分隔符的問題

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

它總是給我這樣的輸出:「2011年4月13日」,而不是「2011年4月13日」。我可以知道爲什麼我得到這個奇怪的問題嗎?

回答

19

你幾乎可以肯定地在一個文化中,這是默認的日期分隔符。如果你想/你可以引用它在格式字符串:

string x = DateTime.Now.ToString("MM'/'dd'/'yyyy") 
+0

哇!它做到了絕招!喬恩,但在我的情況下,我存儲的格式爲「MM/dd/yyyy」,其他可以是「dd/MM/yyyy」,其他可以是「dd-MM-yyyy」。我將從數據庫中獲取該格式的用戶,並使用此代碼DateTime.Now.ToString(UserFormatStoredInDB)。我該如何處理這種情況? – 2011-04-12 20:19:16

+0

@Rocky:只需引用您想要使用的任何分隔符......將帶引號的字符串放入數據庫中。引用的版本將適用於任何文化。或者你可以總是指定用於格式化的不變文化,作爲替代。 – 2011-04-12 20:20:16

+0

你能否讓我知道這個代碼「或者你總是可以指定不變的文化用於格式化,」? – 2011-04-12 20:23:11

2

試試這個

DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture) 
1

使用下面的代碼:

DateTime.Now.ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture) 

這確保了基礎日期並且當數據由不同文化的用戶讀取或寫入時,時間值不會改變。