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

前端之家收集整理的这篇文章主要介绍了.net – 在TextBox中以d / mm格式输入日期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个TextBox绑定到一个可空的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)))

Binding的StringFormat设置为d / MM / yyyy,并且我已经通过将TextBlock绑定到将其StringFormat设置为D的同一属性(长日期格式,它给出了如“星期三”,“ 2012年1月11日’).

有没有人有任何想法?

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

由于IetfLanguageTag已被弃用,您是否考虑使用Name属性

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.ietflanguagetag.aspx

The format of an IETF language tag is similar to the culture name returned by the Name property,but does not identify a culture uniquely. That is,different cultures share the same IETF language tag if those cultures have identical linguistic characteristics.

原文链接:https://www.f2er.com/windows/363864.html

猜你在找的Windows相关文章