从存储在 DataTable 的 DataRow 中的日期获取时间范围
Get time range from dates stored in DataRow of a DataTable
我需要获取两个时间戳之间的时间长度。数据在数据表中。
我正在尝试这样的事情。
System.TimeSpan date5 = (DateTime)drStatus["End"] - (DateTime)drStatus["Start"];
这没有错误,只是 returns 一个十进制数。可以这样格式化吗hh:mm:ss?
这是一种非常简单的方法
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");
当使用 TimeSpan.ToString()
. You can specify your own format with TimeSpan.ToString(string format)
时,TimeSpan
的默认字符串表示形式是 [-][d.]hh:mm:ss[.fffffff]
,但应该注意的是,小时格式化程序将不包括日期部分中包含的小时数.如果你想要一个 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”的情况。
我需要获取两个时间戳之间的时间长度。数据在数据表中。
我正在尝试这样的事情。
System.TimeSpan date5 = (DateTime)drStatus["End"] - (DateTime)drStatus["Start"];
这没有错误,只是 returns 一个十进制数。可以这样格式化吗hh:mm:ss?
这是一种非常简单的方法
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");
当使用 TimeSpan.ToString()
. You can specify your own format with TimeSpan.ToString(string format)
时,TimeSpan
的默认字符串表示形式是 [-][d.]hh:mm:ss[.fffffff]
,但应该注意的是,小时格式化程序将不包括日期部分中包含的小时数.如果你想要一个 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”的情况。