0

我正在尝试通过将文本框转换为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); 
          }

我该怎么走?

谢谢

4

4 回答 4

2

与其使用异常来执行此操作,不如使用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"; }
于 2013-04-12T09:32:12.980 回答
0

尝试使用DateTime.TryParse()方法。

于 2013-04-12T09:55:46.533 回答
0

如果您不确定格式是否正确,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
}
于 2013-04-12T09:32:04.883 回答
0

您可以考虑使用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";
于 2013-04-12T09:41:08.837 回答