我使用一个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