Mat*_*att 112 c# validation datetime
我怀疑我是唯一提出这个解决方案的人,但是如果你有更好的解决方案,请在这里发布.我只想在这里留下这个问题,以便我和其他人可以在以后搜索.
我需要判断是否在文本框中输入了有效日期,这是我提出的代码.当焦点离开文本框时我会触发它.
try
{
DateTime.Parse(startDateTextBox.Text);
}
catch
{
startDateTextBox.Text = DateTime.Today.ToShortDateString();
}
Run Code Online (Sandbox Code Playgroud)
qui*_*qui 255
DateTime.TryParse
Run Code Online (Sandbox Code Playgroud)
我相信这更快,这意味着你不必使用丑陋的尝试/捕获:)
例如
DateTime temp;
if(DateTime.TryParse(startDateTextBox.Text, out temp))
{
// Yay :)
}
else
{
// Aww.. :(
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 59
不要使用异常进行流量控制.使用DateTime.TryParse和DateTime.TryParseExact.我个人更喜欢具有特定格式的TryParseExact,但我猜有时TryParse更好.基于原始代码的示例使用:
DateTime value;
if (!DateTime.TryParse(startDateTextBox.Text, out value))
{
startDateTextox.Text = DateTime.Today.ToShortDateString();
}
Run Code Online (Sandbox Code Playgroud)
更喜欢这种方法的原因:
小智 22
这是解决方案的另一种变体,如果字符串可以转换为DateTime类型,则返回true,否则返回false.
public static bool IsDateTime(string txtDate)
{
DateTime tempDate;
return DateTime.TryParse(txtDate, out tempDate);
}
Run Code Online (Sandbox Code Playgroud)
所有答案都非常好,但如果您想使用单个功能,这可能会起作用。它将适用于其他日期格式,但不适用于此日期,例如:05/06/202 它会将其视为有效日期,但事实并非如此。
private bool validateTime(string dateInString)
{
DateTime temp;
if (DateTime.TryParse(dateInString, out temp))
{
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)