解析没有天数和小时数的 c# TimeSpan
Parsing c# TimeSpan without days and hours
我有一个这样的时间跨度字符串:20 min 49 sec
我想解析它 TimeSpan
实例,但是我玩得很开心。
根据文档,它指出必须设置天数和小时数属性,但在我的情况下我没有它们,我想知道是否可以创建这样的格式,我可以省略这些值。
要解析 那个 精确 字符串,您可以使用此表达式:
TimeSpan.ParseExact(input, @"%m' min '%s' sec'", CultureInfo.InvariantCulture)
基本上,您将除数字以外的所有文本都视为文字分隔符,使用 '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);
我有一个这样的时间跨度字符串:20 min 49 sec
我想解析它 TimeSpan
实例,但是我玩得很开心。
根据文档,它指出必须设置天数和小时数属性,但在我的情况下我没有它们,我想知道是否可以创建这样的格式,我可以省略这些值。
要解析 那个 精确 字符串,您可以使用此表达式:
TimeSpan.ParseExact(input, @"%m' min '%s' sec'", CultureInfo.InvariantCulture)
基本上,您将除数字以外的所有文本都视为文字分隔符,使用 '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);