动态确定DateTime解析正则表达式模式

时间:2016-02-22 03:51:59

标签: c# datetime

是否可以从DateTime类本身获取DateTime格式进行解析?我们有不同的系统以各种格式返回日期时间,如何在不知道正确的正则表达式模式的情况下解析它们?

1 个答案:

答案 0 :(得分:0)

使用TryParse并尝试各种格式,从最受欢迎的格式开始。正确构建DateTime后,TryParse将返回true,您可以使用此DateTime。否则,尝试另一种模式。

例如:

internal DateTime ParseDateString(string dateString)
{
    DateTime myDateTime;
    var attempt1 = doSomeRegex(dateString);
    if (DateTime.TryParse(attempt1, out myDateTime))
    {
        return myDateTime;
    }
    var attempt2 = anotherRegex(dateString);
    if (DateTime.TryParse(attempt2, out myDateTime))
    {
        return myDateTime;
    }
    var attempt3 = lastChanceRegex(dateString);
    if (DateTime.TryParse(attempt3, out myDateTime))
    {
        return myDateTime;
    }
    throw new ArgumentException($"Error parsing date string: {dateString}", nameof(dateString));
}