小编Cha*_*les的帖子

在TextBox中以d/mm格式输入日期

我有一个TextBox绑定到可以为null的DateTime属性.

我在澳大利亚,所以我希望日期以d/mm/yyyy格式呈现.

在我的Windows 7框中,我可以用d/mm格式输入日期,并且它被正确转换(例如,1/11转换为11月1日,13/1转换为1月13日等)

在我的Windows 8框中,相同的输入被解释为它是美国格式,因此1/11转换为1月11日,13/1失败(因为没有第13个月).

两台计算机都设置为使用澳大利亚格式,我在Application.StartUp事件中有这个代码:

FrameworkElement.LanguageProperty.OverrideMetadata(GetType(FrameworkElement), New FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)))
Run Code Online (Sandbox Code Playgroud)

Binding的StringFormat设置为d/MM/yyyy,我已经通过将TextBlock绑定到其StringFormat设置为D的相同属性(长日期格式,它给出的值为'Wednesday, 2012年1月11日').

有没有人有任何想法?

更新:进一步调查(见下面的评论)显示,这似乎是一个问题,与Windows 7相比,Windows 8上的en-AU文化不同,这意味着它以mm/dd格式解释日期,如'1/11' Windows 8,而在Windows 7上,它以dd/mm格式解释它们,这是我在使用en-AU文化时所期望的.

.net cultureinfo windows-8 .net-4.5

10
推荐指数
1
解决办法
409
查看次数

标签 统计

.net ×1

.net-4.5 ×1

cultureinfo ×1

windows-8 ×1