如何将字符串解析为DateTime?

时间:2012-08-23 06:20:36

标签: c# string parsing 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;

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

致电

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