提问者:小点点

将字符串日期转换为相同日期格式C#


我有以下需要全部转换为yyyymmdd的字符串日期列表。

;{“2010/03/30”,“15/12/2016”,“11-15-2012”,“20130720”/代码>

我已经创建了以下内容,但它只适用于“2010/03/20”,其余的都是“不被识别为有效的日期时间”

public static List<string> ChangeDateFormat(List<string> dates)
{
    var newDateList = new List<string>();

    foreach (var date in dates)
    {
        var newDate = new DateTime();
        newDate = Convert.ToDateTime(date, CultureInfo.InvariantCulture);

        newDateList.Add(newDate.ToString("yyyyMMdd"));
    }

    return newDateList;
}

共1个答案

匿名用户

使用。在这里读到它。

根据您的输入,添加了以下格式

public static List<string> ChangeDateFormat(List<string> dates)
{
    var newDateList = new List<string>();

    foreach (var date in dates)
    {
        if (DateTime.TryParseExact(date, new string[] { "yyyy/MM/dd", "dd/MM/yyyy", "MM-dd-yyyy", "yyyyMMdd" }, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime result))
        {
            newDateList.Add(result.ToString("yyyyMMdd"));   
        }
    }

    return newDateList;
}

如果使用下面的代码检查输出

var output = ChangeDateFormat(input);
Console.WriteLine(string.Join(", ", output));

则结果打印为

20100330, 20161215, 20121115, 20130720

检查这个小提琴-https://dotnetfiddle.net/yxw5hz