如何检查在文本框中输入的时间格式
我有textbox
调用HourTb
。我从TimeSpan currentTime = DateTime.Now.TimeOfDay;
获取当前时间,以使在12小时格式的时间,这里是我做了什么:如何检查在文本框中输入的时间格式
if (currentTime < TimeSpan.Parse("12:00")) //Morning
{
if (currentTime.Hours.ToString("00") == "00")
HourTb.Text = "12";
else
HourTb.Text = currentTime.Hours.ToString("00");
AmOrPmTb.Text = "AM";
}
else //Afternoon, night
{
HourTb.Text = (currentTime - TimeSpan.Parse("12:00")).Hours.ToString("00"); //12-hour format
AmOrPmTb.Text = "PM";
}
的问题,我现在面对的是如何检查值输入到HourTb
是在TextChangedEvent一个合适的值:
- 如果输入> 12或输入= 00或只有0,
HourTb.Text = string.Empty;
- 如果输入是单个数字(例如9),然后
HourTb.Text = "09";
为了得到时间12小时格式,你可以使用
DateTime.Now.ToString("hh:mm:ss tt")
为了得到时间以24小时格式,你可以使用
DateTime.Now.ToString("HH:mm:ss tt")
hh
会给你小时,使用12小时制从01到12
HH
会给你小时,使用从00 24小时时钟到23
OP在代码部分中没有_any_'DateTime'。它有'TimeSpan's。当然'DateTime.Now'可以基于'currentTime'计算来使用。 –
是的,我只是在计算'currentTime'。 –
Hi @AayushiJain,感谢您的回复,但我想要的是当用户在文本框中输入小时值时的检查部分 – YWah
首先之一;例如,如果你的输入是'13',你的'else'部分将被执行,你的'HourTb.Text'应该是'01'而不是空字符串。这个问题可能在别的地方。请调试您的代码,看看会发生什么。第二个;既然你用'00'格式化你的'9'格式,它就会有一个前导零“09”。这很正常。 –