我有以下需要全部转换为yyyymmdd的字符串日期列表。
我已经创建了以下内容,但它只适用于“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;
}
使用
根据您的输入,添加了以下格式
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