我有一个Timespan,我需要以一种特定的格式输出,如下所示:-

TimeSpan TimeDifference = DateTime.Now - RandomDate;

我正在这样格式化TimeSpan:-
string result = string.Format(@"{0:hh\:mm\:ss}", TimeDifference);

结果看起来像这样:-



如何将这些秒舍入到小数点后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

10-01 23:09
查看更多