我正在使用.net 3.5,我想知道是否有办法使用Regex.Replace为用户提供的格式设置TimeSpan组件的格式。理想情况下,用户可以发送几种类型的所需格式作为参数 - 例如HH:mm,hh:mm,dd:hh:mm,mm:ss等。 replace函数将询问用户格式并以所需格式返回TimeSpan值。
我已经做了一些挖掘,并提出了以下内容。它不是一个解决方案,但会让你知道我想要实现的目标。
// Sample Replace Pattern for TimeSpan
string pattern = @"(?<dd>\d{2}).(?<hh>\d{2}).(?<mm>\d{2})";
string replaceStr = @"{dd:hh:mm}";
var myRegEx = new Regex(pattern);
TimeSpan ts = new TimeSpan(3, 10,3, 22);
string dateResult = myRegEx.Replace(ts.ToString(), replaceStr);
谢谢 - 格伦
答案 0 :(得分:2)
您可以使用TimeSpan的ToString方法如下所示,如果我理解正确,您不需要正则表达式
string dateResult = ts.ToString(@"dd\:hh\:mm");
如果您有多种格式,则如下所示
HH:mm, hh:mm, dd:hh:mm, mm:ss
然后将输入:
替换为\:
并将@
替换为开头
现在可以使用此格式字符串调用TimeSpan的ToString方法