我试图捕获输入数据从一个文本框转换为DateTime
格式
string yy = string.Format("{0:T}", textBox1.Text);
我希望使用Try-Catch-Finally
产生Systm.FormatException
错误并将其显示在另一个文本框
try
{
DateTime XF = Convert.ToDateTime(yy);
}
catch (FormatException)
{
textBox5.Text = "incorrect time";
}
finally
{
DateTime XF = Convert.ToDateTime(yy);
textBox5.Text = Convert.ToString(XF.Hour + XF.Minute + XF.Second);
}
我该怎么走?
谢谢
与其使用异常来完成此操作,不如使用DateTime.TryParse
。这将返回一个简单的true
或false
,如果它可以转换成一个日期。
DateTime xf;
bool canBeConverted = DateTime.TryParse(yy, out xf);
if (!canBeConverted) { textBox5.Text = "incorrect time"; }
如果你不确定格式是否正确,你应该使用DateTime.TryParse()
或DateTime.TryParseExact()
。不需要异常,因为异常既慢又不清晰。
string dateString;
DateTime result;
if (DateTime.TryParse(dateString, result))
{
// it's a recognized as a DateTime
}
else
{
// it's not recognized as a DateTime
}
您可以考虑使用DateTime.TryParseExact or DateTime.TryParse Method
。
如:
string dateString = "Mon 16 Jun 8:30 AM 2008";
string format = "ddd dd MMM h:mm tt yyyy";
DateTime dateTime;
if (DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateTime))
{
textBox5.Text = "correct time";
}
else
textBox5.Text = "incorrect time";
尝试使用DateTime.TryParse()
方法