动态时间跨度格式字符串

时间:2014-05-03 10:35:24

标签: c# timespan format-string

我想动态设置TimeSpan格式字符串。这意味着如果时间跨度值为负格式,则字符串应与正数字符串不同。当我想设置格式字符串时,我不知道TimeSpan的价值!

例如:我希望-03:01:01为负时间跨度,003:01:01为正值

代码是

columns.Add(new TimeSpanColumnInfo(col.PropertyName, col.TitlePersian, col.TitleEnglish, "ddd\\:hh\\:mm"));

女巫第三个参数是formatstring

2 个答案:

答案 0 :(得分:2)

您的问题仍然不清楚,但如果您有一个名为TimeSpan的{​​{1}}对象,则可以通过执行以下操作有条件地选择格式字符串:

t

如果您确实需要在知道string format = t < TimeSpan.Zero ? @"\-dd\:hh\:mm" : @"ddd\:hh\:mm"; (可疑)的值之前指定格式,那么您可以更改方法签名以接受t并将以下内容作为参数传递:

Func<TimeSpan, string>

More info on Func<T, TResult>.

答案 1 :(得分:0)

听起来你正在寻找像the section separator这样的东西。

string s = someNumber.ToString("00;(00)");

在上面的例子中,正值以两位数输出,负值以两位数字括在括号中输出。

不幸的是,节分隔符仅对自定义数字格式有效。 custom timespan formats不包含部分分隔符。