Ron*_*ing 2 c# sql-server asp.net datetime webforms
我在我的SQL数据库列aeStart如time(0)(其节省时间以24小时格式),例如:10:48:00,15:28:00,16:32:00
我正在尝试以listView格式hh:mm tt(am / pm格式)在控件上显示它
<ItemTemplate>
<asp:Label ID="lblStart" runat="server"
Text='<%# Convert.ToDateTime(Eval("aeStart")).ToShortTimeString() %>' />
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
无法将类型为“ System.TimeSpan”的对象转换为类型为“ System.IConvertible”的对象。
如果我尝试:
Text='<%# Eval("aeStart", "{0:HH:mm tt}") %>'
Run Code Online (Sandbox Code Playgroud)
我得到:
输入的字符串格式不正确。
如果我只是这样做:
Text='<%# Eval("aeStart") %>'
Run Code Online (Sandbox Code Playgroud)
我会得到类似
10:48:00或15:25:00
这不是我想要的。
我想要上午10:48或下午3:25
如何解决此问题,我希望时间以上午/下午的12小时格式显示在该标签上(最好使用.aspx文件中的所有代码,而不是后面的代码)
<asp:Label ID="lblStart" runat="server" Text='<%# DateTime.ParseExact(Eval("aeStart").ToString(), "HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture).ToShortTimeString() %>' />
Run Code Online (Sandbox Code Playgroud)
问题是:您的时间10:48:00与模式不符HH:mm tt。您应该改用以下模式:HH:mm:ss。
我用以下代码进行了测试:
string time = "10:48:00";
DateTime dateTime = DateTime.ParseExact(time, "HH:mm:ss", CultureInfo.InvariantCulture);
Console.WriteLine(dateTime.ToShortTimeString());
Run Code Online (Sandbox Code Playgroud)
因此,根据您的情况,解决方案应为:
<asp:Label ID="lblStart" runat="server" Text="<%# DateTime.ParseExact(Eval("aeStart").ToString(), "HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture).ToShortTimeString() %>"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15335 次 |
| 最近记录: |