Хорошо, если вы посмотрите на то, что может выдать ваш фрагмент кода:
CultureInfo c1 = CultureInfo.InvariantCulture;
CultureInfo c2 = new CultureInfo("en-US");
Console.WriteLine( c1.DateTimeFormat.ShortDatePattern.ToString());
Console.WriteLine( c2.DateTimeFormat.ShortDatePattern.ToString());
Console.WriteLine( c1.DateTimeFormat.LongDatePattern.ToString());
Console.WriteLine( c2.DateTimeFormat.LongDatePattern.ToString());
Console.WriteLine( c1.NumberFormat.CurrencyDecimalDigits.ToString());
Console.WriteLine( c2.NumberFormat.CurrencyDecimalDigits.ToString());
Console.WriteLine( c1.TextInfo.IsRightToLeft.ToString());
Console.WriteLine( c2.TextInfo.IsRightToLeft.ToString());
Вы увидите некоторые отличия:
MM/dd/yyyy
M/d/yyyy
dddd, dd MMMM yyyy
dddd, MMMM dd, yyyy
2
2
False
False
И просто подумайте, когда США теряют свою опору и решают начать использовать даты в европейском стиле или переходят на метрическую систему (метрическая система - это инструмент дьявола! Моя машина получает сорок удочек до головы, и вот так Мне нравится!), InvariantCulture может просто спокойно и плавно оставаться такой, какая она есть. Так что все эти даты, которые вы спрятали в базе данных в текстовом виде с помощью InvariantCulture, будут продолжать работать ...