C# 如何判断一个字符串是不是日期型数据?

如题别用try和转换,用正则。节约资源,提高效率是王道-----这位朋友,用正则怎么写呢?... 如题
别用try和转换,用正则。节约资源,提高效率是王道
-----这位朋友, 用正则怎么写呢?
展开
 我来答
sniper2003
推荐于2017-11-22 · TA获得超过1882个赞
知道小有建树答主
回答量:775
采纳率:100%
帮助的人:664万
展开全部
string date = "2001-1-5";

DateTime dt;

if (DateTime.TryParse(date, out dt))
{
Console.WriteLine(dt);
}
else
{
throw new Exception("不是正确的日期格式类型!");
}

正则可真是没有你用try来的效率高,而且正则只能用来判断指定的字符串是否符合一种格式规范,而日期还需要判断闰年,闰月等等非常复杂。所以,对于转换日期,正则表达式是不适用的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
和素兰祝巳
2019-11-12 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:32%
帮助的人:1167万
展开全部
regex
reg
=
new
regex(@"^\d+\.\d+$");
if
(reg.ismatch(str))
messagebox.show("输入的是小数");
以上匹配,只有包含小数点,且前面后面都只包含数字的,才会认定为小数。
你的判断没考虑非数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古龙皎月00
2009-11-25 · 超过34用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:89.6万
展开全部
你的日期字符串发一下,好给你写正则表达式!

using System.Text.RegularExpressions;
Regex r;
r = new Regex("正则表达式");
Match m = r.Match("字符串");
Console.WriteLine(m);
字符串正确,则m输出,错误则m为空!

不过楼上的人说的也很有道理,正则不用也罢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daqular1028
2009-11-25
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
别用try和转换,用正则。节约资源,提高效率是王道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萝卜天使
2009-11-25 · TA获得超过149个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:149万
展开全部
public bool IsDate(string date)
{
try
{
DateTime.Parse(date);
return true;
}
catch
{
return false;
}
}

最简单的办法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式