是的,将DateTime.ParseExact 与所有可能的允许格式一起使用:
var strings = new[] { "07 December, 2012", "7 December, 2012", "December 07, 2012", "December 07, 2012", "12/07/2012", "12/7/2012" };
var formats = new[]{"dd MMMM, yyyy", "d MMMM, yyyy", "MMMM dd, yyyy", "dd/MM/yyyy", "dd/M/yyyy"};
var dates = strings
.Select(s => DateTime.ParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None));
foreach(DateTime d in dates)
Console.WriteLine("Year:{0} Month:{1} Day:{2}", d.Year , d.Month , d.Day);
Demo
我使用CultureInfo.InvariantCulture 来强制使用日期分隔符/,这通常是您当前文化的日期分隔符(请参阅The "/" Custom Format Specifier)。