首页 > 解决方案 > TimeSpan 非常灵活的字符串格式

问题描述

我想为 TimeSpan 对象实现最灵活的字符串格式。假设您有以下代码:

string format = ".................";
TimeSpan ts = TimeSpan.FromSeconds(7200);
Debug.WriteLine(ts.ToString(format));

我想指定一个参数(在我的控制台应用程序的 app.config 中?),其中包含一个字符串格式来切换不同的输出格式,而无需接触 C# 代码。例如:7200sec(仅输出总秒数)2h 00min 00sec(友好输出TimeSpan)120 min(仅输出总分钟数)等等。

我不想针对每种情况调整我的代码。

标签: c#.nettimespan

解决方案


TimeSpan.ToStringans的混合string.format应该是有用的。

string format = "{2}h {0:%mm}min {0:%ss}sec";
string format2 = "{4}min";
TimeSpan ts = TimeSpan.FromSeconds(7200);
Console.WriteLine(string.Format(format, ts, ts.TotalDays, ts.TotalHours, ts.TotalMinutes, ts.TotalSeconds));
Console.WriteLine(string.Format(format2, ts, ts.TotalDays, ts.TotalHours, ts.TotalMinutes, ts.TotalSeconds));

推荐阅读