首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期格式比较

日期格式比较
EN

Stack Overflow用户
提问于 2015-05-08 12:09:52
回答 1查看 38关注 0票数 0

我有疑问。我正在准备日期比较任务。问题是一个月和一天,如果它的一位数,它可以出现在03或3的两个月和一天。例如,可能的值:

代码语言:javascript
复制
2015/03/27 or 2015/4/12 or 2015/07/05 or 2015/2/2 or 2015/02/3

到目前为止我所做的是:

代码语言:javascript
复制
^(?<Month>\d(0([0-1]|1[0-2])|([1-12])){1,2})/(?<Day>\d{1,2})/(?<Year>(?:\d{4}|\d{2}))$

我开始做了一个月了:

代码语言:javascript
复制
(?<Month>\d(0([0-1]|1[0-2])|([1-12])){1,2})

(0([0-1]|1[0-2])|([1-12])){1,2})

所以{1,2} -,因为可以是一位数或两位数,例如(12,2,02)

0(0-1\10-2)\x{e76f}(1-12)-因为可以是两位数或一位数

不知何故,我无法把它变成最后的版本。你能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2015-05-08 12:21:13

只使用\d,你可能会得到假约会,比如12/67/4567。另外,您的输入还有另一种日期格式:Year/Month/Day

我建议在输入格式中使用此正则表达式:

代码语言:javascript
复制
^(?<Year>(?:19|20)\d{2})\/(?<Month>0?[1-9]|1[0-2])\/(?<Day>3[01]|0?[1-9]|[12][0-9])$

请参阅演示

可选的0是可能的,因为?量词在0之后。

如果是针对.NET的,则不必转义/的。

若要验证日期,请使用正在使用的编程环境的类和方法。下面是C#中的一个示例:

代码语言:javascript
复制
var resultFromRegex = "2015/03/27";
DateTime validDate;
var isValid = DateTime.TryParseExact(resultFromRegex, "yyyy/MM/dd", new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.None, out validDate);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30123524

复制
相关文章

相似问题

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