C# 4.0 无法将字符串强制转换为TimeSpan

C# 4.0 无法将字符串强制转换为TimeSpan,c#-4.0,timespan,C# 4.0,Timespan,我有一个hh \:mm \:ss\.ff格式的字符串,例如00:00:00.10。当我试图将此字符串解析为TimeSpan时,它将丢失其自定义格式,并返回00:00:00.1000000,即TimeSpan.FromSeconds格式。 我不想在UI上显示这么长的结果,这就是我自定义格式的原因。我也尝试过TimeSpan.ParseExact,但结果相同。有什么建议吗 代码: 结果:00:00:00.1000000 预期结果:00:00:00.10 屏幕截图: 为什么不直接显示字符串?当然,Ti

我有一个hh \:mm \:ss\.ff格式的字符串,例如00:00:00.10。当我试图将此字符串解析为TimeSpan时,它将丢失其自定义格式,并返回00:00:00.1000000,即TimeSpan.FromSeconds格式。 我不想在UI上显示这么长的结果,这就是我自定义格式的原因。我也尝试过TimeSpan.ParseExact,但结果相同。有什么建议吗

代码:

结果:00:00:00.1000000

预期结果:00:00:00.10

屏幕截图:

为什么不直接显示字符串?当然,TimeSpan值将具有它所具有的任何精度-这就是为什么在转换为字符串时对其进行格式化的原因。这一变化发生在大多数地方使用TimeSpan的现有功能中。我不想对现有代码进行多次更改。这是我的最后一个选项。你能给出一个显示TimeSpan值的代码示例吗?可能有一个更简单的解决方案,但一般来说,格式转换为字符串时会发生。此外,答案可能取决于UI技术-这是WPF应用程序吗?网络应用?Windows窗体?这只是调试器显示时间跨度的方式,它显示所有有效数字。你没有问题。如果您真的希望它具有特定的格式,那么必须使用它的ToString方法。
TimeSpan ts = TimeSpan.FromSeconds(remainingTime);
string hhmmss = ts.ToString(@"hh\:mm\:ss\.ff");
ts = TimeSpan.Parse(hhmmss);
//ts = TimeSpan.ParseExact(hhmmss, @"hh\:mm\:ss\.ff", CultureInfo.InvariantCulture, TimeSpanStyles.None);