我使用一個datepicker在我的WPF的形式,和我具有當用戶進入英國格式的日期,即31/12/1980,WPF似乎想的問題將其轉換爲美國,所以它讀取12/31/1980。WPF的DatePicker默認到美式日期代替英國
這讓我對我的SQL插入超出範圍異常。
有沒有人遇到此之前,如果是這樣,你怎麼解決?
我使用一個datepicker在我的WPF的形式,和我具有當用戶進入英國格式的日期,即31/12/1980,WPF似乎想的問題將其轉換爲美國,所以它讀取12/31/1980。WPF的DatePicker默認到美式日期代替英國
這讓我對我的SQL插入超出範圍異常。
有沒有人遇到此之前,如果是這樣,你怎麼解決?
您需要確保UI具有正確的區域設置。
我不知道有關WPF,但我知道,在Silverlight中有一個錯誤,由此XAML不履行的Windows的語言環境。你必須包括下面的代碼到視圖的構造函數:
// Get "StringFormat=c" to honour culture settings.
// From http://timheuer.com/blog/archive/2010/08/11/stringformat-and-currentculture-in-silverlight.aspx
this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
現在,如果你的電腦沒有設置爲en-GB
但你的應用程序需要這個,你需要通過設置的CurrentCulture
給力的語言應用程序線程或傳入「en-GB」。
實現這個(提示)方法的方法是:
示例代碼: -
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-GB");
cultureInfo.DateTimeFormat.ShortDatePattern = ConfigurationManager.AppSettings["DateFormat_UK"];
System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;
給予管理員控制模塊也可以考慮
嗨克里斯。你的回答讓我走上正軌。感謝那。但是,我發現必須在Window部分中明確定義語言,如下所示:** Language =「en-GB」**,否則由於某種原因,它將默認回到美國。奇怪,但它已經做到了。感謝您讓我走上正確的道路。 Rich –
根據文檔,看起來像Window.Language是default =「en-US」。 http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.WINDOWS.FRAMEWORKELEMENT.LANGUAGE)%3bk(VS.XAMLEDITOR)%3bk(TargetFrameworkMoniker-%22.NETFRAMEWORK %2cVERSION%3dV4.0%22)&rd = true –
@JamieClayton - 是的沒錯。 – ChrisF