获取存储在DataTable的DataRow中的日期的时间范围

时间:2015-08-25 19:50:48

标签: c# datatable timestamp timespan datarow

我需要获得两个时间戳之间的时间长度。数据位于数据表中。

我正在尝试这样的事情。

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

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

2 个答案:

答案 0 :(得分:1)

这是一种非常简单的方法

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

答案 1 :(得分:1)

使用TimeSpan.ToString()时,TimeSpan的默认字符串表示形式为[-][d.]hh:mm:ss[.fffffff]。您可以使用format指定自己的TimeSpan.ToString(string format),但应注意小时格式化程序不包含当天部分中包含的小时数。如果您想要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));

Math.Abs为负数时,需要TimeSpan来避免类似“-12:-30:-20”的内容。