将无效字符串转换为DateTime

sam*_*sam -1 .net c# datetime date

我的输入字符串格式如下:

string a = "201101..";
string b = "199008..";
string c = "20110202";
Run Code Online (Sandbox Code Playgroud)

如何将它们转换为日期格式yyyymmdd

我知道我可以在第3种类型上使用DateTime.TryParse().

这就是我所拥有的:

string tempdate = a;
DateTime actualdate;
char[] charsToTrim = { '.' };
tempdate = tempdate.TrimEnd(charsToTrim);
if (DateTime.TryParse(tempdate, out actualdate))
{
}
Run Code Online (Sandbox Code Playgroud)

Hab*_*bib 8

你可以传递多种格式 DateTime.TryParseExact

List<string> strDates = new List<string>
{
    "201101..",
    "199008..",
    "20110202",
};
string[] possibleFormats = new[] { "yyyyMM", "yyyydd", "yyyyMd" }; 
                                                     //single M and d to parse
                                                    //both single and double digit
                                                    //Month or Day



DateTime dt; 

foreach(string str in strDates)
{
    if (DateTime.TryParseExact(str.Trim('.'), 
                            possibleFormats, 
                            CultureInfo.InvariantCulture, 
                            DateTimeStyles.None, 
                            out dt))
    {
        Console.WriteLine(dt);
    }
    else
    {
        Console.WriteLine("Invalid date");
    }
}
Run Code Online (Sandbox Code Playgroud)

以上会给你输出:

01/01/2011 12:00:00 AM
01/08/1990 12:00:00 AM
02/02/2011 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)