我想保存用户在数据库varchar
列中工作的小时数,但默认情况下,如果小时数超过24,则格式化值包括天数。我只想要总数小时。
例如:如果用户今天工作10:00:00,明天13:00:00,后天3:30:00,那么我想要的格式化总数是26:30:00 。相反,我看到的是1.2:30:00。
如何获得我想要的格式?
此外,当我手动将值40:00:00保存在数据库中,并尝试稍后将其读入TimeSpan
时,我收到了一个错误。
如何以我想要的方式保存数据库中的小时数,并且以后仍可以将其读回TimeSpan
?
答案 0 :(得分:18)
您可以执行以下操作:
TimeSpan time = ...;
string timeForDisplay = (int)time.TotalHours + time.ToString(@"\:mm\:ss");
答案 1 :(得分:14)
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);