2012-08-23 60 views
1

我有产品列表,每个产品都有DateTime类型的创建日期。我想在我输入字符串类型之后创建一些产品。如何解析字符串到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; 

在第二行中我得到了错误的字符串未被识别为有效的DateTime为“mm/dd/yy”。 我也试过DateTime.Parse(),Convert.ToDateTime()并得到相同的错误。 如何通过创建日期过滤此产品列表?

回答

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); 
1

呼叫

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