c# – TimeSpan字符串格式化

我有一个Timespan,需要以特定格式输出,如下所示:
TimeSpan TimeDifference = DateTime.Now - RandomDate;

我正在格式化TimeSpan:

string result = string.Format(@"{0:hh\:mm\:ss}",TimeDifference);

结果将如下所示:

“00:16:45.6184635”

如何将这几秒转到0位小数位?

Expected Result = 00:16:46

谢谢

解决方法

您的代码与.NET 4一起使用,但不适用于3.5,因为4上有一个突破性的变化,TimeSpan现在实现IFormattable(见下文).

您可以在3.5或更低版本上执行,将TimeSpan转换为DateTime并使用ToString:

DateTime dtime = DateTime.MinValue.Add(TimeDifference);
string result = dtime.ToString(@"hh\:mm\:ss");

在这里可以看到非工作的工作版本:http://ideone.com/Ak1HuD

编辑我认为它有时工作的原因有时不是since .NET 4.0 TimeSpan实现IFormattable哪个seem to be used by String.Format.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...