using System.Collections.Generic;
using System.Globalization;
private static string ConvertToStandard(string value) {
if (DateTime.TryParseExact(value,
new string[] { "yyyy/M/d", "d/M/yyyy", "M-d-yyyy", "yyyyMMdd"},
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeLocal,
return date.ToString("yyyyMMdd");
public static List<string> TransformDateFormat(List<string> dates) {
throw new ArgumentNullException(nameof(dates));
return dates.Select(s => ConvertToStandard(s)).ToList();
public static void Main() {
List<string> original = new List<string>() {
"2010/02/20", "19/12/2016", "11-18-2012", "20130720",
Console.Write(String.Join(", ", TransformDateFormat(original)));