我正在尝试通过将文本框转换为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);
}我该怎么走呢?
谢谢
发布于 2013-04-12 17:32:13
与其使用异常来做这件事,不如使用DateTime.TryParse。这将返回一个简单的true或false,如果它可以转换为日期的话。
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-12 17:32:05
如果您不确定格式是否正确,则应使用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-12 17:41:09
您可以考虑使用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";https://stackoverflow.com/questions/15967696
复制相似问题