如何判断一个字符串是否是是时间格式 如何判断一个字符串是否是是时间格式,不用抓异常的方法。DateTime的Parse不抛异常。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 convert.to..是可以抛得,如果你不想用try{convert.todatetime}catch{}那你就写正则吧,不过要符合所有格式的正则不好写,呵呵 我也遇到了这样的问题,时间格式的正则表达式不好写,我也没有找到,所有我就用的try{}catch{}语法。 试试这个:REGEXP_IS_VALID_DATE = @"^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$"; 参考一下:private bool IsDate(string id){ try { string regextext = @"\d{4}(?:-\d{1,2}){0,2}"; Regex regex = new Regex (regextext,RegexOptions.None ); if(regex.IsMatch (id)) { char sep = '-'; if(id.IndexOf ("-") != -1) sep = '-'; else if (id.IndexOf ("/") != -1) sep = '/'; else if (id.IndexOf (".") != -1) sep = '.'; char[] chr = new char []{sep}; string[] arr = id.Split (chr); DateTime dt = new DateTime (Convert.ToInt32 (arr[0]),Convert.ToInt32 (arr[1]),Convert.ToInt32 (arr[2])); return arr.Length == 3 & Convert.ToInt32 (dt.Year) == Convert.ToInt32 (arr[0]) & Convert.ToInt32 (dt.Month) == Convert.ToInt32 (arr[1]) & Convert.ToInt32 (dt.Day) == Convert.ToInt32 (arr[2]); } } catch { return false; } return false;} 日期格式为:yyyy-mm-dd,yyyy/mm/dd,yyyy.mm.dd三种。可以根据自己需要增加。 private int pdlx(string tt) { try { Convert.ToDecimal(tt); return 1;//是 } catch { return 0;//不是 } } C#程序实现中文翻译为英文功能 如何将十进制的一个字符串"123456"转为16进制,不足位补 0 程序运行问题 我想请教一下文件复制的问题 在写web程序时候,如何让客户端执行一个本地的exe?? 新手求教!任意两个日期之间计算有几天! 如何解决 IE5 下面 模式窗口点按钮都弹新窗口的bug ?《<base target="_self">无效,高手来来 c#每日一题(四) 程序发布到服务器上运行后程序报错(急) 我的机器里为什么会缺少“System.Net.Dll”文件呢? 我想用c#三层结构的oa换c#三层结构的全站程序学习。 如何在ASP.NET生成类似留言本的需要"重复区域"问题!
那你就写正则吧,不过要符合所有格式的正则不好写,呵呵
try{}catch{}语法。
REGEXP_IS_VALID_DATE = @"^(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29))$)|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))$";
private bool IsDate(string id)
{
try
{
string regextext = @"\d{4}(?:-\d{1,2}){0,2}";
Regex regex = new Regex (regextext,RegexOptions.None );
if(regex.IsMatch (id))
{
char sep = '-';
if(id.IndexOf ("-") != -1)
sep = '-';
else if (id.IndexOf ("/") != -1)
sep = '/';
else if (id.IndexOf (".") != -1)
sep = '.';
char[] chr = new char []{sep};
string[] arr = id.Split (chr);
DateTime dt = new DateTime (Convert.ToInt32 (arr[0]),Convert.ToInt32 (arr[1]),Convert.ToInt32 (arr[2]));
return arr.Length == 3 & Convert.ToInt32 (dt.Year) == Convert.ToInt32 (arr[0]) & Convert.ToInt32 (dt.Month) == Convert.ToInt32 (arr[1]) & Convert.ToInt32 (dt.Day) == Convert.ToInt32 (arr[2]);
}
}
catch
{
return false;
}
return false;
}
可以根据自己需要增加。
{
try
{
Convert.ToDecimal(tt);
return 1;//是
}
catch
{
return 0;//不是
}
}