首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DataList中将时间数据类型显示为AM/PM时间

在DataList中将时间数据类型显示为AM/PM时间
EN

Stack Overflow用户
提问于 2015-06-18 21:00:09
回答 3查看 621关注 0票数 1
代码语言:javascript
复制
<asp:Label ID="timeLabel" runat="server" Text='<%# Eval("time") %>' />

在这条语句中," time“是我的数据库中的一个时间数据类型。它显示为16:00:00。我正在尝试让它显示为下午4:00如果我使用的是datetime数据类型,我认为这非常简单,但是如何将其转换为datetime (使用{HH.mm tt}格式)或以其他方式显示为AM/PM时间。

EN

回答 3

Stack Overflow用户

发布于 2015-06-18 21:04:56

由于T-SQL time在CLR端与TimeSpan映射,因此当您从数据库中获取此值时,它将是TimeSpan,而不是DateTime

并且您不能用AMPM指示符来表示TimeSpan。这些仅适用于DateTime表示。没有像TimeSpan这样的东西;下午间隔4个小时。这说不通,对吧?

最接近的方法可能是,从数据库中获取此值,并使用Add(TimeSpan) method重载将其添加到DateTime.Today值中。然后,您可以使用.ToString("h:mm tt")方法获得它的字符串表示,其区域性不会将AMDesignatorPMDesignator作为空字符串。

循序渐进;

使用database.

  • Get a time
  1. 方法获取time作为TimeSpan
  2. 使用Show显示其字符串表示形式
票数 1
EN

Stack Overflow用户

发布于 2015-06-19 07:11:24

我在这里用SQL而不是C#解决了这个问题。我确实尝试过在Eval()参数中将TimeSpan添加到DateTime中,但我一直得到一个FormatException。而且,这个表达变得有点可笑了。

我试过了

代码语言:javascript
复制
<asp:Label ID="timeLabel" runat="server" Text='<%# DateTime.Today.Add(TimeSpan.Parse(Eval("time").ToString())).ToString("h:mm tt") %>' />

还有这个

代码语言:javascript
复制
<asp:Label ID="timeLabel" runat="server" Text='<%# Eval(DateTime.Today.Add(TimeSpan.Parse("time")).ToString("h:mm tt")) %>' />

将查询修改为使用起来要容易得多

代码语言:javascript
复制
SELECT  CONVERT(varchar, [time], 100 ) AS [time]

我对这个结果很满意。不过,我很想知道我对C#表达式的理解是否正确。非常感谢你的投入。

票数 0
EN

Stack Overflow用户

发布于 2015-11-26 04:21:39

代码语言:javascript
复制
<%#DateTime.Today.Add((TimeSpan)(Eval("Event_From_Time"))).ToString("H:mm tt")%>  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30916062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档