编程语言
首页 > 编程语言> > c# – .NET(3.5)使用点而不是冒号格式化时间作为IT文化的TimeSeparator?

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

作者:互联网

根据Wikipedia(并在an answer by Dario Solera确认),在意大利他们使用冒号格式化时间:

The 24-hour notation is used in writing with a colon as a separator.
Example: 14:05. The minutes are written with two digits; the hour
numbers can be written with or without leading zero.

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

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);

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

解决方法:

这似乎是一个.NET 3.5问题.在.NET 4.0中,您发布的代码按预期使用冒号.看起来像框架版本之间的一个奇怪的突破性变化,但似乎升级到.NET 4将解决问题.

标签:c,net,localization,globalization,cultureinfo
来源: https://codeday.me/bug/20190715/1470848.html