【发布时间】:2015-12-17 15:46:40
【问题描述】:
我在我的 SQL 数据库列 aeStart 中有 time(0)(以 24 小时格式节省时间),例如:10:48:00、15:28:00、16:32:00
我正在尝试以hh:mm tt 格式(上午/下午格式)在listView 控件上显示它
<ItemTemplate>
<asp:Label ID="lblStart" runat="server"
Text='<%# Convert.ToDateTime(Eval("aeStart")).ToShortTimeString() %>' />
</ItemTemplate>
我收到一个错误:
无法将“System.TimeSpan”类型的对象转换为类型 'System.IConvertible'。
如果我尝试:
Text='<%# Eval("aeStart", "{0:HH:mm tt}") %>'
我明白了:
输入字符串的格式不正确。
如果我这样做:
Text='<%# Eval("aeStart") %>'
我会得到类似的东西
10:48:00 或 15:25:00
这不是我想要的。
我想要上午 10:48 或下午 3:25
如何解决这个问题,我希望时间以 12 小时格式显示在该标签上,使用 am/pm(最好是 .aspx 文件中的所有代码,而不是后面的代码)
答案:
<asp:Label ID="lblStart" runat="server" Text='<%# DateTime.ParseExact(Eval("aeStart").ToString(), "HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture).ToShortTimeString() %>' />
【问题讨论】:
-
数据库中存储的日期时间是什么数据类型和格式?
-
@Mathemats,
time(0)如问题所述。 -
那么为什么不使用
DateTime呢?这不是你在那里的时间跨度。 -
当时
aeStart的值是多少?
标签: c# asp.net sql-server datetime webforms