基础问题: 字符串到日期的转换或判断

xiaoyuehen 2006-03-10 11:08:07
给定一个字符串, 验证是否为日期格式(2002-02-03, 2002.02.03)
string var = "2003-2-29";
Console.WriteLine("{0} is Date Format? {1}", var, IsDate(var));

不能用try(因为我有很多的地方需要判断, 比如一下方法内要使用这个函数 50 次, 怕影响性能), 怎么编写下面的IsDate(string var)函数?
---------------------------------------------------
private static bool IsDate(string var)
{
return true;
}
...全文
134 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyuehen 2006-03-10
  • 打赏
  • 举报
回复
lovefootball(蟑螂) ( ) 信誉:98
你给的日期验证 20030229f 返回是 True

usxue(尘飞扬) ( ) 信誉:97
2003-02-29 返回是 True

fangxinggood(JustACoder) ( ) 信誉:106 2003-02-29 返回是false 给的测试通过..

谢谢!

usxue 2006-03-10
  • 打赏
  • 举报
回复
日期的正则表达式:

2002-02-03: ^\d{4}-(0?[1-9]|[1][012])-(0?[1-9]|[12][0-9]|[3][01])$
2002.02.03: ^\d{4}.(0?[1-9]|[1][012]).(0?[1-9]|[12][0-9]|[3][01])$
机器人 2006-03-10
  • 打赏
  • 举报
回复
using System.Text.RegularExpressions;

public static bool IsValidDate(string strDate)
{
Regex dateRegex = new Regex(@"^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$");
return dateRegex.IsMatch(strDate);

}
lovefootball 2006-03-10
  • 打赏
  • 举报
回复
date
string regex = @"^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578]
)|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[4
69])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\
s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([1
3579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((
0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((
0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9]
)|(2[0-8]))))))";

time
^((2[0123])|([01]\d)|\d):(([0-5]\d)|\d)(:(([0-5]\d)|\d))?$

public static bool IsTime(string p_str)
{
Regex objReg = new Regex(@"^((2[0123])|([01]\d)|\d):(([0-5]\d)|\d)(:(([0-5]\d)|\d))?$");
return objReg.IsMatch(p_str);
}
usxue 2006-03-10
  • 打赏
  • 举报
回复
正则表达式
songxiaozhao 2006-03-10
  • 打赏
  • 举报
回复
用日期的正则表达式啊
伴老思源 2006-03-10
  • 打赏
  • 举报
回复
写个正则表达式吧

110,533

社区成员

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

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

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