将包含多种格式日期的字符串转换为包含"CCYYMMDD"格式日期的字符串.格式

本文关键字:格式 quot 字符串 日期 CCYYMMDD 包含多 包含 转换 | 更新日期: 2023-09-27 18:02:42

我有一个包含日期和时间的字符串。日期可以是以下任意一种格式:
" M/D/YYYY "或" MM/D/YYYY "或" M/DD/YYYY "或" MM/DD/YYYY "。
时间要么在:
" hh: mm: ss "或" h: mm: ss "。
字符串在c#代码中从SQL Server中检索。

如何将其转换为包含日期格式的字符串"CCYYMMDD"?

将包含多种格式日期的字符串转换为包含"CCYYMMDD"格式日期的字符串.格式

        var inputDate = "4/28/2006 12:39:32:429AM";
        //1 - parse into date parts
        char[] delimiterChars = { '/' };
        string[] dateParts = inputDate.Split(delimiterChars);
        var month = int.Parse(dateParts[0].ToString());
        var day = int.Parse(dateParts[1].ToString()); 
        var year = 0;
        string yearString = dateParts[2].ToString();
        //strip of the time for the year part
        if (yearString.Length > 5)
            year = int.Parse(yearString.Substring(0, 4));
        //2 - Create date object
        DateTime testDate = new DateTime(year, month, day);
        //3 - format date
        var outputDate = testDate.ToString("yyyyMMdd");
        Console.WriteLine("Input date: " + inputDate);
        Console.WriteLine("Output date: " + outputDate);
        Console.ReadLine();

您可以参考MSDN在这里格式化日期。您可能还需要做一些验证,以确保从SQL Server获得有效的日期。

实际上,这种方式更好。我不知道我之前在想什么…使用DateTime。TryParse方法验证字符串是否为日期。如果TryParse返回false,则字符串不是有效的日期格式。您所期望的格式是有效的日期格式。

        DateTime date;
        var inputDate = "4/28/2006 12:39:32";
        var outputDate = "Could not format the date.  The input date is not in a correct date format!";
        if (DateTime.TryParse(inputDate,out date))
        {
            outputDate = date.ToString("yyyyMMdd");
        }
        Console.WriteLine("Input date: " + inputDate);
        Console.WriteLine("Output date: " + outputDate);
        Console.ReadLine();