如何设置时间跨度的格式以显示总小时数

本文关键字:格式 显示 小时 时间跨度 何设置 设置 | 更新日期: 2023-09-27 17:56:59

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

例如:如果用户今天工作 10:00:00 小时,明天工作 13:00:00 小时,后天工作 3:30:00

小时,那么我想要的格式化总数是 26:30:00。 相反,我看到的是 1.2:30:00。

如何获得所需的格式?

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

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

如何设置时间跨度的格式以显示总小时数

你可以做这样的事情:

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

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