如何判断一个字符串是否是是时间格式

inter1 2005-05-31 01:54:03
如何判断一个字符串是否是是时间格式,不用抓异常的方法。
DateTime的Parse不抛异常。
...全文
547 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shw19811210 2005-06-01
  • 打赏
  • 举报
回复
private int pdlx(string tt)
{
try
{
Convert.ToDecimal(tt);
return 1;//是
}
catch
{

return 0;//不是
}
}
zhongwanli 2005-06-01
  • 打赏
  • 举报
回复
用正则得穷举。。。

还是用 抛异常的方法吧。
inter1 2005-06-01
  • 打赏
  • 举报
回复
thanks!
mba9001 2005-06-01
  • 打赏
  • 举报
回复
判断是不是时间格式???难呀,日期,时间,如果还加上分秒,毫秒...和各国文化差异.......
太难了.应该把日期,时间分开判断.选几种通用的格式吧.
难.
heilong05 2005-06-01
  • 打赏
  • 举报
回复
正则是什么东东。第一次听说。请指教。
lovvver 2005-05-31
  • 打赏
  • 举报
回复
日期格式为:yyyy-mm-dd,yyyy/mm/dd,yyyy.mm.dd三种。
可以根据自己需要增加。
inter1 2005-05-31
  • 打赏
  • 举报
回复
up
lovvver 2005-05-31
  • 打赏
  • 举报
回复
参考一下:
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;
}
zmhere 2005-05-31
  • 打赏
  • 举报
回复
试试这个:
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]))$";
meixiaofeng 2005-05-31
  • 打赏
  • 举报
回复
这个有点难度
bumm 2005-05-31
  • 打赏
  • 举报
回复
1.抛异常
2.正则表达式
yz20050510 2005-05-31
  • 打赏
  • 举报
回复
我也遇到了这样的问题,时间格式的正则表达式不好写,我也没有找到,所有我就用的
try{}catch{}语法。
lovefootball 2005-05-31
  • 打赏
  • 举报
回复
convert.to..是可以抛得,如果你不想用try{convert.todatetime}catch{}
那你就写正则吧,不过要符合所有格式的正则不好写,呵呵

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧