首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >try-catch-finally格式异常

try-catch-finally格式异常
EN

Stack Overflow用户
提问于 2013-04-12 17:29:16
回答 4查看 3.8K关注 0票数 0

我正在尝试通过将文本框转换为DateTime格式来捕获输入数据

代码语言:javascript
复制
string yy = string.Format("{0:T}", textBox1.Text);

我希望使用Try-Catch-Finally生成Systm.FormatException错误并将其显示在另一个文本框中

代码语言:javascript
复制
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); 
          }

我该怎么走呢?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2013-04-12 17:32:13

与其使用异常来做这件事,不如使用DateTime.TryParse。这将返回一个简单的truefalse,如果它可以转换为日期的话。

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

代码语言:javascript
复制
DateTime xf;
bool canBeConverted = DateTime.TryParse(yy, out xf);
if (!canBeConverted) { textBox5.Text = "incorrect time"; }
票数 2
EN

Stack Overflow用户

发布于 2013-04-12 17:32:05

如果您不确定格式是否正确,则应使用DateTime.TryParse()DateTime.TryParseExact()。不需要异常,因为异常很慢,也不太清楚。

代码语言:javascript
复制
string dateString;
DateTime result;
if (DateTime.TryParse(dateString, result))
{
    // it's a recognized as a DateTime
}
else
{
    // it's not recognized as a DateTime
}
票数 0
EN

Stack Overflow用户

发布于 2013-04-12 17:41:09

您可以考虑使用DateTime.TryParseExact or DateTime.TryParse Method

例如:

代码语言:javascript
复制
    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";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15967696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档