using System.Globalization;
public static void Main()
var culture = CultureInfo.GetCultureInfo(1043);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
Console.WriteLine(ParseDate("01022020"));
Console.WriteLine(ParseDate("00000000"));
Console.WriteLine(ParseDate(""));
Console.WriteLine(ParseDate(null));
Console.WriteLine(ParseDate("appelflap"));
Console.WriteLine(ParseDate("appelflap", defaultValue: new DateTime(1970, 1, 1)));
Console.WriteLine(ParseDate("01010001"));
Console.WriteLine(ParseDate("99991231", "yyyyMMdd"));
public static DateTime? ParseDate(string value, string format = "ddMMyyyy", DateTime? defaultValue = null, IFormatProvider formatProvider = null) {
return DateTime.TryParseExact(value, format, formatProvider ?? CultureInfo.InvariantCulture,
DateTimeStyles.AssumeLocal, out var result)