gpt4 book ai didi

c# - 在 C# 中验证不同的日期格式

转载 作者:太空宇宙 更新时间:2023-11-03 23:09:27 31 4
gpt4 key购买 nike

这个问题听起来可能很愚蠢,但我尝试了各种不同的方法,因为我想验证不同格式的日期或日期时间,如果格式无效则记录错误。

Example: 10 March 2016, 10 Mar 16, 10 Mar 2016 

我尝试使用正则表达式,但它只检查正常日期,日期时间格式如 DD/MM/YYYYYYYY/MM/DD DD-MM-YYYY

这是我的代码:

bool isDate = Regex.IsMatch(Value.ToString(), @"^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$");

if (isDate == true)
{
DateTime datetime;
DateTime.TryParse(Value.ToString(), out datetime);
sGetDate = datetime.ToString("dd/MM/yyyy");
GetString.Add(sName + ":" + sGetDate);
}
else{
//log error
}

谁能帮我解决这个问题?干杯。

最佳答案

看来,您不需要正则表达式:尝试解析并查看是否成功:

  string source = "10 Mar 16";

...

// Put all allowed formats here
string[] formats = new string[] {
"d MMMM yyyy",
"d MMM yyyy",
"d MMM yy"
};

if (DateTime.TryParseExact(source,
formats,
CultureInfo.InvariantCulture, //TODO: may be you want CultureInfo.CurrentCulture
DateTimeStyles.AssumeLocal,
out datetime)) {
// datetime contains valid date and time
}
else {
// log error: parsing fails
}

关于c# - 在 C# 中验证不同的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39892633/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com