我以这些格式获取日期:
07 December, 2012
7 December, 2012
December 07, 2012
12/07/2012
12/7/2012
在一个字符串变量中,我必须从中确定日期,月份,年份。日期可以是上述任何格式的字符串。我想知道必须有一个代码可以处理日期的所有可能性作为字符串数据类型。我的意思是我想将日期作为字符串传递并获取DateTime对象。
答案 0 :(得分:5)
是的,请使用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);
我使用CultureInfo.InvariantCulture
来强制执行日期分隔符/
,这通常是当前文化的日期分隔符(请参阅The "/" Custom Format Specifier)。
答案 1 :(得分:2)
我不确定DateTime.TryParse()是否正确处理它们,但这将是我尝试的第一件事。
答案 2 :(得分:0)
DateTime.Parse("date string" )