从数据表的DataRow中存储的日期中获取时间范围

本文关键字:获取 取时间 范围 日期 存储 DataRow 数据表 | 更新日期: 2023-09-27 18:09:44

我需要得到两个时间戳之间的时间长度。数据在一个数据表中

我正在尝试这样的事情。

System.TimeSpan date5 = (DateTime)drStatus["End"] - (DateTime)drStatus["Start"];

这不会出错,只是返回一个十进制数。可以格式化hh:mm:ss吗?

从数据表的DataRow中存储的日期中获取时间范围

使用TimeSpan.ToString()时,TimeSpan的默认字符串表示为[-][d.]hh:mm:ss[.fffffff]。您可以使用TimeSpan.ToString(string format)指定自己的格式,但是应该注意的是,小时格式化程序将不包括包含在day部分中的小时。如果你想要一个hh:mm:ss格式,时间可以超过24小时,那么你需要

string result = string.Format(
    "{0}:{1:00}:{2:00}", 
    myTimeSpan.Days * 24 + myTimeSpan.Hours, 
    Math.Abs(myTimeSpan.Minutes), 
    Math.Abs(myTimeSpan.Seconds));

TimeSpan为负时,需要Math.Abs来避免类似"-12:-30:-20"的情况。

这是一种非常简单的方法

var startTime1 = DateTime.Now.ToString();
var endTime1 = DateTime.Now.ToString();
TimeSpan duration = DateTime.Parse(endTime1).Subtract(DateTime.Parse(startTime1));
var formattedTimeSpan = duration.ToString(@"hh' ':' mm' ':' ss' ':' fff");