public static void GetDateTimeFormats()
{
var allStandardFormats = new char[]
{
'd', 'D', 'f', 'F', 'g', 'G',
'm', 'M', 'o', 'O', 'r', 'R',
's', 't', 'T', 'u', 'U', 'y', 'Y',
};
var dateTime = new DateTime(2009, 7, 28, 5, 23, 15);
var formats = new List<string>();
foreach (char format in allStandardFormats)
{
string[] dates = dateTime.GetDateTimeFormats(format);
Assert.True(dates.Length > 0);
DateTime parsedDate;
Assert.True(DateTime.TryParseExact(dates[0], format.ToString(), CultureInfo.CurrentCulture, DateTimeStyles.None, out parsedDate));
formats.AddRange(dates);
}
List<string> actualFormats = dateTime.GetDateTimeFormats().ToList();
Assert.Equal(formats.OrderBy(t => t), actualFormats.OrderBy(t => t));
actualFormats = dateTime.GetDateTimeFormats(CultureInfo.CurrentCulture).ToList();
Assert.Equal(formats.OrderBy(t => t), actualFormats.OrderBy(t => t));
}