WPF:如何只从文本框中获取时间?
WPF: How do I get only Time from textbox?
我有一个数据table,其中有一个总活动时间列:Total
,我想在最小和最大时间上进行过滤,例如仅显示 00:02:00 和 00:30:00 之间的活动时间。我的存储过程使用这些开始和结束时间进行过滤。
在我的 WPF 应用程序中,我有一个文本框,我想用它来过滤 table。
(注意,这些不是一天中的时间,只是一般时间,我可能超过 24 小时。)
我发现我需要将文本框字符串转换为 DateTime,但我不确定如何执行此操作,因为我对数据库和 WPF 还很陌生。
在 xaml 中,我尝试使用:
<TextBox x:Name="Activefrom"
Text="{Binding Path=TotalStart, StringFormat=' HH:mm:ss '}"/>
并且在转换字符串的代码隐藏中:
DateTime dateTimeStart = DateTime.ParseExact(Activefrom.Text, "HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
但我收到错误消息:
System.FormatException: 'String was not recognized as a valid DateTime.'
因为超过 24 小时,我不确定是否应该使用 DATETIME
,但我还是尝试了,因为在这种情况下 table 不会超过 24 小时。
如何将文本框绑定为 Time
以便我可以使用我的 SP 仅按时过滤数据table
听起来你应该看看 TimeSpan 结构而不是 DateTime。另外,我可能会将输入拆分为一个文本框用于小时数和一个文本框用于分钟数(取决于数据中持续时间的范围)。
从您的文本框中读取值:
然后尝试转换为 DateTime
,然后转换为 Time
您的值来自 TextBox
:
string s = Activefrom.Text; // "22/11/2010 07:00:00 AM";
var dt = DateTime.Parse(s);
var time = dt.ToString("HH:mm:ss");
输出:
07:00:00 // If TextBox has the following value: "22/11/2010 07:00:00 AM";
我有一个数据table,其中有一个总活动时间列:Total
,我想在最小和最大时间上进行过滤,例如仅显示 00:02:00 和 00:30:00 之间的活动时间。我的存储过程使用这些开始和结束时间进行过滤。
在我的 WPF 应用程序中,我有一个文本框,我想用它来过滤 table。
(注意,这些不是一天中的时间,只是一般时间,我可能超过 24 小时。)
我发现我需要将文本框字符串转换为 DateTime,但我不确定如何执行此操作,因为我对数据库和 WPF 还很陌生。 在 xaml 中,我尝试使用:
<TextBox x:Name="Activefrom"
Text="{Binding Path=TotalStart, StringFormat=' HH:mm:ss '}"/>
并且在转换字符串的代码隐藏中:
DateTime dateTimeStart = DateTime.ParseExact(Activefrom.Text, "HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture);
但我收到错误消息:
System.FormatException: 'String was not recognized as a valid DateTime.'
因为超过 24 小时,我不确定是否应该使用 DATETIME
,但我还是尝试了,因为在这种情况下 table 不会超过 24 小时。
如何将文本框绑定为 Time
以便我可以使用我的 SP 仅按时过滤数据table
听起来你应该看看 TimeSpan 结构而不是 DateTime。另外,我可能会将输入拆分为一个文本框用于小时数和一个文本框用于分钟数(取决于数据中持续时间的范围)。
从您的文本框中读取值:
然后尝试转换为 DateTime
,然后转换为 Time
您的值来自 TextBox
:
string s = Activefrom.Text; // "22/11/2010 07:00:00 AM";
var dt = DateTime.Parse(s);
var time = dt.ToString("HH:mm:ss");
输出:
07:00:00 // If TextBox has the following value: "22/11/2010 07:00:00 AM";