I am looking for someone to help me understand why this unit test passes.
Essentially we want to support various date formats but en-CA should be treated as DD/MM/YYYY and if client is using en-us culture then we want to treat the date as MM/DD/YYYY. I don't understand why this isn't the default behavior with DateTime.Parse and DateTime.TryParse.
[Fact]
public void DateTimeParse()
{
var cultureUs = CultureInfo.GetCultureInfoByIetfLanguageTag("en-us");
DateTime.TryParse("01/05/2020", cultureUs.DateTimeFormat, DateTimeStyles.None, out var d);
var cultureCa = CultureInfo.GetCultureInfoByIetfLanguageTag("en-ca");
DateTime.TryParse("01/05/2020", cultureCa.DateTimeFormat, DateTimeStyles.None, out var c);
Assert.Equal(d.Month,c.Month);
}