.net 解析不带天和小时的c# TimeSpan

qij5mzcb  于 2023-03-20  发布在  .NET
关注(0)|答案(2)|浏览(83)

我有一个时间跨度字符串如下:20 min 49 sec我想解析它TimeSpan示例,但是我在使用它时遇到了麻烦。
从文档中,它指出必须设置天和小时属性,但在我的情况下,我没有它们,我想知道是否有可能创建这样的格式,我可以省略这些值。

ou6hu8tu

ou6hu8tu1#

要解析那个 * 确切的*字符串,可以使用以下表达式:

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

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

他们网站上的更多例子。

相关问题