使用Regex.Replace格式化TimeSpan组件

时间:2013-06-10 03:10:21

标签: c# regex converter timespan

我正在使用.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);

谢谢 - 格伦

1 个答案:

答案 0 :(得分:2)

您可以使用TimeSpan的ToString方法如下所示,如果我理解正确,您不需要正则表达式

 string dateResult = ts.ToString(@"dd\:hh\:mm");

如果您有多种格式,则如下所示

HH:mm, hh:mm, dd:hh:mm, mm:ss 

然后将输入:替换为\:并将@替换为开头

现在可以使用此格式字符串调用TimeSpan的ToString方法