将 TimeSpan 值显示为经过时间的最简单方法,例如 1:45:33
我想要一种简单的方法来将任何 TimeSpan 显示为经过的时间,而不使用循环或自定义逻辑
例如,
hours : minutes : seconds
我确信必须有一个适用的 .NET 内置或格式字符串,但我无法找到它。
I'd like an easy way to display any TimeSpan as an elapsed time without using loops or custom logic
e.g.
hours : minutes : seconds
I'm sure there must be a .NET built-in or format string that applies, however I'm unable to locate it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
问题本身不是重复的,但我认为答案就是您正在寻找的 - 使用 String.Format 自定义格式时间跨度。为了进一步简化您的解决方案,您可以将该功能包装在 Timespan 的扩展方法中。
The question itself isn't a duplicate but the answer, I assume, is what you are looking for - Custom format Timespan with String.Format. To simplify your solution further you could wrap that functionality up in an extension method of Timespan.
TimeSpan.ToString()
有什么问题吗?编辑:您可以使用 DateTime 作为中间格式存储:
不漂亮但有效。
What's wrong with
TimeSpan.ToString()
?EDIT: You can use a DateTime as an intermediate formatting store:
Not pretty but works.
您可以使用:
对于自定义格式,请参阅此 MSDN 页面。
You can use:
For custom formats, see this MSDN page.
这是我用于自定义格式的方法:
我不知道这是否符合“无自定义逻辑”的条件,但它与 .NET 3.5 兼容并且不涉及循环。
Here is a method I use for custom formatting:
I don't know if that qualifies as "without custom logic," but it is .NET 3.5 compatible and doesn't involve a loop.
使用这个:
.ToString()
根据MSDN,显示的默认格式为
[-][d.]hh:mm:ss[.fffffff]< /代码>。这是将 TimeSpan 值显示为经过时间的最快、最简单的方法,例如 1:45:33
如果您有天、秒的小数部分或负值,请使用MSDN。这看起来像
.ToString(@"hh\:mm\:ss")
示例:
Use This:
.ToString()
According to MSDN, the default format this displays is
[-][d.]hh:mm:ss[.fffffff]
. This is the quickest and easiest way to display TimeSpan value as an elapsed time e.g. 1:45:33If you have days, fractions of a second, or a negative value, use a custom format string as described in MSDN. This would look like
.ToString(@"hh\:mm\:ss")
Example: