.NET(3.5)使用点而不是冒号格式化时间作为它的IT文化的TimeSeparator?

Dan*_*eny 3 .net c# globalization localization cultureinfo

根据维基百科(并在Dario Solera的回答中证实),在意大利,他们使用冒号格式化时间:

24小时表示法以书写形式使用冒号作为分隔符.示例:14:05.会议记录以两位数字写成; 小时数可以写入或不带前导零.

但是,运行以下代码似乎输出点:

using System.Globalization;

Thread.CurrentThread.CurrentCulture = new CultureInfo("it-IT");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("it-IT");
// Outputs "11.08"
Console.WriteLine(DateTime.Now.ToShortTimeString());

// Outputs "."
Console.WriteLine(new CultureInfo("it-IT").DateTimeFormat.TimeSeparator);
Run Code Online (Sandbox Code Playgroud)

这是一个框架错误吗?什么是"修复"它的最佳方法?TimeSeparator是可设置的 - 我们应该在分配之前覆盖它Thread.CurrentThread.CurrentCulture吗?

Dar*_*era 6

我可以保证在意大利我们使用冒号分隔小时和分钟数字,我们使用24小时格式.维基百科是正确的(至少这次).

您的问题可能是您没有设置Thread的UI文化.这样的事情应该有效:

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("it-IT");
Run Code Online (Sandbox Code Playgroud)