2012-08-23 78 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);