如何将字符串解析为DateTime?

Jey*_*mov 1 c# string datetime parsing

我有产品列表,每个产品都有DateTime类型的创建日期.我想在字符串类型输入时间之后创建一些产品.

我在字符串类型中输入EnteredDate,如下格式:05/16/2012

1.    var dates = from d in Products
2.                where d.CreateDate >= DateTime.ParseExact( EnteredDate, "mm/dd/yy", null )
3.                select d;
Run Code Online (Sandbox Code Playgroud)

在第二行我得到错误,因为String未被识别为"mm/dd/yy" 的有效DateTime.我也尝试了DateTime.Parse(),Convert.ToDateTime()并得到了同样的错误.如何按创建日期过滤此产品列表?

Jon*_*eet 5

"mm"是分钟,你的年份是4位,而不是2.你想要"MM/dd/yyyy",如果你的格式真的那么.你对这方面的信心有多大?(特别是,如果它是由用户输入的,您应该使您的代码文化敏感...)

我建议将解析部分从查询中拉出来,如果你真的有一个固定的格式,也可能使用不变文化进行解析:

DateTime date = DateTime.ParseExact(EnteredDate, "MM/dd/yyyy",
                                    CultureInfo.InvariantCulture);

var dates = Products.Where(d => d.CreateDate >= date);
Run Code Online (Sandbox Code Playgroud)