try-catch-finally formatexception



我试图捕获输入数据从一个文本框转换为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。这将返回一个简单的truefalse,如果它可以转换成一个日期。

http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx

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()方法

相关内容

  • 没有找到相关文章

最新更新