我有一个时间跨度字符串如下:20 min 49 sec我想解析它TimeSpan示例,但是我在使用它时遇到了麻烦。从文档中,它指出必须设置天和小时属性,但在我的情况下,我没有它们,我想知道是否有可能创建这样的格式,我可以省略这些值。
20 min 49 sec
TimeSpan
ou6hu8tu1#
要解析那个 * 确切的*字符串,可以使用以下表达式:
TimeSpan.ParseExact(input, @"%m' min '%s' sec'", CultureInfo.InvariantCulture)
基本上,除了数字所在的位置之外,所有文本都被视为文字分隔符,使用'xxx'语法指定。如果您认为可能需要同时处理min和mins以及sec和secs,则需要使用具有多种格式的重载:
'xxx'
min
mins
sec
secs
string[] formats = new[] { "%m' min '%s' sec'", "%m' mins '%s' sec'", "%m' min '%s' secs'", "%m' mins '%s' secs'" }; TimeSpan.ParseExact(input, formats, CultureInfo.InvariantCulture)
与您所认为的文档声明相反,您根本不必指定日期或小时,这是完全法律的的:
TimeSpan ts = TimeSpan.FromMilliseconds(45);
eiee3dmh2#
取自https://learn.microsoft.com/en-us/dotnet/api/system.timespan.parseexact?view=net-8.0
var intervalString = "17:14:48.153"; var format = @"h\:mm\:ss\.fff"; var result = TimeSpan.ParseExact(intervalString, format);
他们网站上的更多例子。
2条答案
按热度按时间ou6hu8tu1#
要解析那个 * 确切的*字符串,可以使用以下表达式:
基本上,除了数字所在的位置之外,所有文本都被视为文字分隔符,使用
'xxx'
语法指定。如果您认为可能需要同时处理
min
和mins
以及sec
和secs
,则需要使用具有多种格式的重载:与您所认为的文档声明相反,您根本不必指定日期或小时,这是完全法律的的:
eiee3dmh2#
取自https://learn.microsoft.com/en-us/dotnet/api/system.timespan.parseexact?view=net-8.0
他们网站上的更多例子。