如何格式化时间跨度以显示总小时数?

我想在数据库varchar列中保存用户的工作小时数,但默认情况下,如果小时数超过24,则格式化的值包括天数。我只想要总小时数。

例如:如果用户今天工作10:00:00,明天13:00:00,后天3:30:00,则我想要的格式化总数为26:30:00。 相反,我看到的是1.2:30:00。

我怎样才能获得我想要的格式?

此外,当我手动将值40:00:00保存在数据库中,并尝试稍后将其读入TimeSpan ,我收到了一个错误。

如何以我想要的方式保存数据库中的小时数,并且以后仍然能够将其读回到TimeSpan

试试TimeSpan.TotalHours

 String timeStamp = "40:00:00"; var segments = timeStamp.Split(':'); TimeSpan t = new TimeSpan(0, Convert.ToInt32(segments[0]), Convert.ToInt32(segments[1]), Convert.ToInt32(segments[2])); string time = string.Format("{0}:{1}:{2}", ((int) t.TotalHours), t.Minutes, t.Seconds); 

你可以这样做:

 TimeSpan time = ...; string timeForDisplay = (int)time.TotalHours + time.ToString(@"\:mm\:ss");