C# 动态时间跨度格式字符串

C# 动态时间跨度格式字符串,c#,timespan,format-string,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您的问题

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

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

代码是

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

第三个参数是formatstring

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

string format = t < TimeSpan.Zero ? @"\-dd\:hh\:mm" : @"ddd\:hh\:mm";

听起来你在找类似的东西

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


遗憾的是,节分隔符仅对自定义数字格式有效。不包括分区分隔符。

不,不知道您要做什么。示例输入和输出以及您尝试过的示例代码需要。@AntP还需要更多示例吗?您还没有发布您尝试过的代码。好的,现在我看到您共享了一行代码,在其中您向某个未知集合添加了一些未知对象-这将如何帮助任何人回答这个问题?你需要分享足够的信息来回答这个问题。如果你想让人们在回答这个问题时投入一些精力。问题是,当我想设置字符串格式时,我没有t的值+1用于传递格式化函数的选项。这是个好建议。
o => o < TimeSpan.Zero ? @"\-dd\:hh\:mm" : @"ddd\:hh\:mm"
string s = someNumber.ToString("00;(00)");