解析没有天数和小时数的 c# TimeSpan

Parsing c# TimeSpan without days and hours

我有一个这样的时间跨度字符串:20 min 49 sec 我想解析它 TimeSpan 实例,但是我玩得很开心。

根据文档,它指出必须设置天数和小时数属性,但在我的情况下我没有它们,我想知道是否可以创建这样的格式,我可以省略这些值。

要解析 那个 精确 字符串,您可以使用此表达式:

TimeSpan.ParseExact(input, @"%m' min '%s' sec'", CultureInfo.InvariantCulture)

基本上,您将除数字以外的所有文本都视为文字分隔符,使用 'xxx' 语法指定。

如果您认为您可能需要处理 minmins 以及 secsecs,您需要使用多种格式的重载:

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);