转换时间跨度-网格视图
本文关键字:视图 网格 时间跨度 转换 | 更新日期: 2023-09-27 18:07:00
下面的代码可以工作。最后一行将代码格式化为dd:hh:mm。我怎么能让它只是显示为hh:mm。如果我把最后一行改成
e.Row.Cells[4].Text = timeSpent.ToString(@"hh':mm");
我得到一个异常,因为它超过24小时。目的是使输出为26:30而不是01:02:30
我的代码是: TimeSpan timeSpent = TimeSpan.Zero;
protected void GridViewFortNight_RowDataBound(object sender, GridViewRowEventArgs e)
{
var tempTimeCalc = "";
if (e.Row.RowType == DataControlRowType.DataRow)
{
tempTimeCalc = e.Row.Cells[4].Text.ToString();
timeSpent += TimeSpan.Parse(tempTimeCalc);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[4].Text = timeSpent.ToString(@"dd':hh':mm");
}
}
内置格式字符串不支持。你必须更深入一点,自己做一些格式化工作。不过也没那么糟:
e.Row.Cells[4].Text = string.Format("{0:00}:{1:00}", (int)timeSpent.TotalHours, timeSpent.Minutes);
你可以做
string s =
$"{((int)timeSpent.TotalHours).ToString("00")}:{timeSpent.Minutes.ToString("00")}"
您可以在绑定字段中添加dataformatstring="{0:M-dd-yyyy}"属性,如下所示
<asp:BoundField DataField="Date" HeaderText="Date" DataFormatString="{0:dd-M-yyyy}" />