如何检查字符串是否包含特定格式的日期

本文关键字:定格 包含特 格式 日期 是否 字符串 何检查 检查 | 更新日期: 2023-09-27 18:10:55

我想检查字符串是否包含这种格式的日期"Wed, Sep 2, 2015 at 6:40 AM" .

我如何在c#中做到这一点?

如何检查字符串是否包含特定格式的日期

这是与您的日期格式匹配的格式字符串

"ddd, MMM d, yyyy 'at' h:mm tt"

还有一个使用

的例子
DateTime date;
Boolean isValidDate = DateTime.TryParseExact("Wed, Sep 2, 2015 at 6:40 AM", "ddd, MMM d, yyyy 'at' h:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out date);

这是一个代码片段从一个较大的文本中提取日期字符串然后解析成DateTime

// example string
String input = "This page was last updated on Wed, Sep 2, 2015 at 6:40 PM";
Regex regex = new Regex(@"[a-z]{3},'s[a-z]{3}'s[0-9],'s[0-9]{4}'sat's[0-1]?[0-9]:[0-5][0-9]'s(AM|PM)", RegexOptions.IgnoreCase);
Match match = regex.Match(input);
if (match.Success)
{
    Group g = match.Groups[0];
    CaptureCollection cc = g.Captures;
    for (int j = 0; j < cc.Count; j++) 
    {
        Capture c = cc[j];
        Console.WriteLine(c.Value);
        DateTime date;
        Boolean isValidDate = DateTime.TryParseExact(c.Value, "ddd, MMM d, yyyy 'at' h:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out date);
        if(isValidDate)
        {
            Console.WriteLine(date);
        }
    }
}