c# - 格式化 TimeSpan 大于 24 小时

标签 c# vb.net formatting timespan

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

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

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

>105hr 56mn 47sec

有内置函数还是需要写自定义函数?

最佳答案

嗯,最简单的做法是自己格式化,例如

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

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

关于c# - 格式化 TimeSpan 大于 24 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3505230/

相关文章:

c# - LINQ - 使用 Predicate<T> 调用过滤器

c# - 基于输入的字母金字塔C#

vb.net - 触摸屏winform应用程序的UI组件?

.net - VB.NET 中只读集合属性的集合初始值设定项?

c# - 在 C# 中,调整数组大小(在这种情况下增加其大小)会使用默认值初始化新段——这可靠吗?

c# - 此代码的 VB.NET 等价物

c# - 去除字符串中的空格

scala - 如何在 Scala 中打印 map

formatting - 如何将带符号的整数格式化为带符号的十六进制表示形式?

C# 避免多个 SWITCH 语句 .net