一尘不染

格式化时间跨度大于24小时

c#

假设我将几秒钟转换为TimeSpan对象,如下所示:

Dim sec = 1254234568
Dim t As TimeSpan = TimeSpan.FromSeconds(sec)

如何将TimeSpan对象格式化为以下格式:

>105hr 56mn 47sec

是否有内置函数或我需要编写自定义函数?


阅读 315

收藏
2020-05-19

共1个答案

一尘不染

好吧,最简单的事情就是自己格式化它,例如

return string.Format("{0}hr {1}mn {2}sec",
                     (int) span.TotalHours,
                     span.Minutes,
                     span.Seconds);

在VB中:

Public Shared Function FormatTimeSpan(span As TimeSpan) As String
    Return String.Format("{0}hr {1}mn {2}sec", _
                         CInt(Math.Truncate(span.TotalHours)), _
                         span.Minutes, _
                         span.Seconds)
End Function

我不知道TimeSpan.NET 4中的任何格式是否会使这更简单。

2020-05-19