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()并得到了同样的错误.如何按创建日期过滤此产品列表?
"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)