将String转换为DateTime对象并将其添加到总时间

Add*_*ddy 3 c# asp.net datetime

我有一个字符串列表,其中包含hh:mm:ss用作字符串的花费时间

00:00:40
00:01:00
00:02:10
Run Code Online (Sandbox Code Playgroud)

我想添加这些值并将其显示给用户

Total Time: 00:03:50
Run Code Online (Sandbox Code Playgroud)

我可以解析每次值到日期时间,但是如何添加它们以显示上面显示的结果.

这是我如何将字符串解析为DateTime

foreach(string itm in TimeList)
{
    DateTime sTime = DateTime.ParseExact(itm , "HH:mm:ss", CultureInfo.CurrentCulture);
}
Run Code Online (Sandbox Code Playgroud)

Son*_*nül 6

你的解析操作很好.但是你sTime每次迭代中将结果分配给你,这就是为什么你丢失了最后一个之外的所有数据.

但更重要的是DateTime,我会解析它们TimeSpan而不是更适合您的数据,因为它是一个时间间隔.

var list = new List<string>
{
    "00:00:40",
    "00:01:00",
    "00:02:10"
};

var total = TimeSpan.Zero;

foreach (var item in list)
{
    total += TimeSpan.ParseExact(item, "hh\\:mm\\:ss", CultureInfo.InvariantCulture);
}
Run Code Online (Sandbox Code Playgroud)

现在您可以将您的格式化total并向用户显示;

string.Format("Total Time: {0}", 
               total.ToString("hh\\:mm\\:ss", CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)

似乎ParseExact在DotNet 3.5中不可用

然后您可以使用自.NET 1.0版本以来可用的TimeSpan.Parse方法.但我强烈建议您考虑升级您的框架版本,如果可以的话.

foreach (var item in list)
{
    total += TimeSpan.Parse(item);
}
Run Code Online (Sandbox Code Playgroud)