我有一个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
谢谢
@H_301_20@解决方法
您的代码与.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
.