0

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

谢谢 - 格伦

4

1 回答 1

2

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

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

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

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

然后将输入替换:\:并附@加到开头

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

于 2013-06-10T03:22:22.583 回答