输入标记类型时间以在ASP.NET中以12小时格式获取值

时间:2015-05-24 08:21:32

标签: c# asp.net

我正在使用带有TextMode时间的ASP文本框:

<asp:TextBox TextMode="Time" ID="time_box" runat="server">

当我在浏览器中运行代码时,我可以以12小时格式输入时间。 但是当我单击提交按钮时,数据库中的值将以24小时格式存储。

我还尝试做一个JavaScript“警报”,看看时间是否在12小时内,但我仍然可以在24小时内获得该值。

那么,如何在数据库中以12小时格式保存时间?

我正在使用:

time_box.Text
time_box.TextWithLiterals //or should I use this?

或者我是否需要在后端C#代码中将时间转换为12小时?

1 个答案:

答案 0 :(得分:2)

在数据库中存储date,time,double,...值时,没有format的概念。例如,SQL Server中的date始终存储为数值,这使得算术和比较更加简单和快速。但是,例如,当在SSMS中向您显示此值时,您不会看到原始数字,而是看到人类可读的字符串,如17-12-2014。

format通常存在于显示/解析表示中需要人类可读的某些值的概念中。

从数据库加载值并且它是TimeSpan数据类型时,请使用此代码以12小时格式显示该值:

time_box.Text = new DateTime(timeValue.Ticks).ToString("hh:mm tt")

如果加载的值为DateTime类型,则使用以下代码:

time_box.Text = timeValue.ToString("hh:mm tt")