【发布时间】:2011-03-25 21:35:21
【问题描述】:
输入此问题的标题将我带到this question。我正在寻找同样的东西,但如果你明白我的意思,可能不是静态格式的东西?
我正在编写一个快速程序,它将获取两个 DateTime 对象的 TimeSpan 持续时间并将它们输出以打印到纸上。
首选格式是:XX days, YY hours, ZZ minutes(秒数无关紧要;天数也是如此,因为我预计时间跨度不会超过几个小时)。
说出下面的代码(作为例子):
DateTime start = DateTime.Now;
DateTime end = DateTime.Now.AddMinutes(135);
TimeSpan duration = (end - start);
// output duration as XX hours, YY minutes
谢谢,
扎克
附: 我也遇到过“PrettyTime.NET”,但它会输出“3 天前”等内容。我在 google 上找到的所有其他主题都可以像上面的例子一样格式化持续时间字符串,这让我找到了一个基于 Java 的解决方案。 :\
2014-09-08 更新:
3 年后跟进,我在 NuGet 和 Github 上找到了一个很棒的库,名为“Humanizer”,它可以解决我遇到的这个问题。我没怎么用过,但我试过了,效果很好。虽然它是一个相当大的库(它会为您的项目的构建路径发出大量不同文化的文件夹(我确信有一种方法可以自定义它)。
【问题讨论】:
-
发布指向 Java 版本的链接...应该可以在 C# 中实现 :)
-
@MattC:这需要我几分钟。我已经关闭了它们。 ://
-
@MattC:嗯。这是一个相似的,但格式不同的。反正一般都一样。 stackoverflow.com/questions/3471397/…
-
Zack:仅供参考 - 您可以直接使用:TimeSpan.FromMinutes(135),而不是仅仅为了制作时间跨度而制作结束日期时间:msdn.microsoft.com/en-us/library/…
标签: c# formatting timespan