繁体   English   中英

CultureInfo(“fr-BE”) 在 Windows 8.1 上与以前不同

[英]CultureInfo(“fr-BE”) different on Windows 8.1 than before

我为 .NET Web 应用程序设置了文化,以便对数字、货币和日期使用特定格式:

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-BE");

在带有 IIS 7 的 Windows 2008 服务器机器上,我得到“d/m/yy”作为短日期格式(我想要的)。 在我的(新)Windows 8.1 pro 机器(开发者和测试者)上,我得到了相同 CultureInfo 的“dm-yy”格式......“dash”而不是“slash”分隔符。

我也检查了控制面板 - >区域和法语(比利时)的设置如上所述,W2k8服务器与W8.1pro不同......

.NET 版本是 4,没问题。 固定文化无济于事,就我需要在 UI 中显示特定文化而言,问题就在那里。 确实,Windows 8 带来了变化......最后我用来覆盖线程文化的一些设置,比如日期分隔符:

DateTimeFormatInfo dtfi = Thread.CurrentThread.CurrentCulture.DateTimeFormat; if (dtfi.DateSeparator != "/") dtfi.DateSeparator = "/";

这确保斜杠将始终是当前线程中的日期分隔符。

谢谢你。 有人知道吗? 比利时改了国家标准? 或者,微软为他们做了什么? 任何的想法? 谢谢。

感谢您的回答。 .NET 版本是 4,没问题。 固定文化无济于事,就我需要在 UI 中显示特定文化而言,问题就在那里。 确实,Windows 8 带来了变化......最后我用来覆盖线程文化的一些设置,比如日期分隔符: DateTimeFormatInfo dtfi = Thread.CurrentThread.CurrentCulture.DateTimeFormat; if (dtfi.DateSeparator != "/") dtfi.DateSeparator = "/";

这确保斜杠将始终是当前线程中的日期分隔符。

谢谢你。

我正在查看 CultureInfo 'en-NZ' 的类似问题,因为它在不同的 Windows 版本中针对相同的文化设置进行了更改,并且导致我的 Web 服务为相同的 CultureInfo 保存了不同的字符串,结果证明它是由 Windows 提供的从 .Net Framework 4 开始,在此之前是 Windows 和 .Net 的组合。

幸运的是,我可以使用 Microsoft 推荐的不变文化,以确保我保存到数据库中的字符串不会因 Windows 或未来的 .Net Framework 更新而更改。 问题是,就我而言, AM\\PMDesignatoram\\pm更改为AM\\PM ,并且不变文化将确保它保存到AM\\PM我认为它将来不会改变,但如果我想要它保存到am\\pm因为它是旧版本的 Windows,不变文化将无法做到这一点,我可能需要定义我自己的自定义文化或像你一样覆盖当前的文化。

请参阅有关 Microsoft 指定 CultureInof are subject to change without notice另一个问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM