<asp:Label ID="timeLabel" runat="server" Text='<%# Eval("time") %>' />在这条语句中," time“是我的数据库中的一个时间数据类型。它显示为16:00:00。我正在尝试让它显示为下午4:00如果我使用的是datetime数据类型,我认为这非常简单,但是如何将其转换为datetime (使用{HH.mm tt}格式)或以其他方式显示为AM/PM时间。
发布于 2015-06-18 21:04:56
由于T-SQL time在CLR端与TimeSpan映射,因此当您从数据库中获取此值时,它将是TimeSpan,而不是DateTime。
并且您不能用AM或PM指示符来表示TimeSpan。这些仅适用于DateTime表示。没有像TimeSpan这样的东西;下午间隔4个小时。这说不通,对吧?
最接近的方法可能是,从数据库中获取此值,并使用Add(TimeSpan) method重载将其添加到DateTime.Today值中。然后,您可以使用.ToString("h:mm tt")方法获得它的字符串表示,其区域性不会将AMDesignator和PMDesignator作为空字符串。
循序渐进;
使用database.
time time作为TimeSpan。发布于 2015-06-19 07:11:24
我在这里用SQL而不是C#解决了这个问题。我确实尝试过在Eval()参数中将TimeSpan添加到DateTime中,但我一直得到一个FormatException。而且,这个表达变得有点可笑了。
我试过了
<asp:Label ID="timeLabel" runat="server" Text='<%# DateTime.Today.Add(TimeSpan.Parse(Eval("time").ToString())).ToString("h:mm tt") %>' />还有这个
<asp:Label ID="timeLabel" runat="server" Text='<%# Eval(DateTime.Today.Add(TimeSpan.Parse("time")).ToString("h:mm tt")) %>' />将查询修改为使用起来要容易得多
SELECT CONVERT(varchar, [time], 100 ) AS [time]我对这个结果很满意。不过,我很想知道我对C#表达式的理解是否正确。非常感谢你的投入。
发布于 2015-11-26 04:21:39
<%#DateTime.Today.Add((TimeSpan)(Eval("Event_From_Time"))).ToString("H:mm tt")%> https://stackoverflow.com/questions/30916062
复制相似问题