這是您的一個奇怪的。.ToShortDateString返回不同於預期的文化格式
我們已經有了一個c#界面,從今年年初開始運行,在Windows XP(32位)PC上沒有問題。我們剛剛使用由SCCM安裝的應用程序將PC升級到Windows 7(64位)。
隨着最新的運行,文本區域中的日期開始以美國格式(2014/5/2)而不是英國格式(2014年2月5日)出現。
正在使用的代碼是:
string Lines = FromFormat.Text + " from " + FromFormat.Charge_From.ToShortDateString() + " to " + FromFormat.Charge_To.ToShortDateString() +".";
凡FromFormat是一個對象與源數據,Charge_From & Charge_To是DATATIME變量。
我們已經檢查了PC的區域設置,並創建一個小的測試應用程序,以顯示從.net PC的設置,這兩個被設置爲英國格式 代碼的測試程序:
label1.Text = DateTime.Now.ToString();
label2.Text = DateTime.Now.ToString("dd MMM yyyy");
label3.Text = DateTime.Now.ToShortDateString();
label4.Text = Thread.CurrentThread.CurrentCulture.EnglishName;
我知道,我可以用ToString("dd/MM/yyyy")
替換ToShortDateString()
來強制正確的格式,但我的問題是爲什麼會發生這種情況?
是否與Windows 7升級有關?或SCCM?
在此先感謝
什麼是您的'CurrentCulture'?它是'en-GB'還是'en-US'? – 2014-10-09 12:19:52
_「我知道我可以用ToString(」dd/MM/yyyy「)替換ToShortDateString()來強制正確格式」_ That's not correct,'ToString(「dd/MM/yyyy」)'也會使用你的curent文件的日期分隔符而不是'/'。 – 2014-10-09 12:26:42
據我所知,所有電腦都在使用en-GB – Tony 2014-10-09 13:22:29