1

私は製品リストを持っており、すべての製品には 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;

2行目で、文字列が「mm/dd/yy」の有効なDateTimeとして認識されなかったため、エラーが発生しました。DateTime.Parse()、Convert.ToDateTime() も試しましたが、同じエラーが発生しました。この製品リストを作成日でフィルタリングするにはどうすればよいですか?

4

2 に答える 2

5

「mm」は分で、年は 2 桁ではなく 4 桁です。「MM/dd/yyyy」が必要です。形式が本当に常にそうである場合。その面であなたはどのくらい自信がありますか?(特に、ユーザーによって入力された場合は、おそらくコードをカルチャに依存させる必要があります...)

ただし、クエリから解析部分を引き出すことをお勧めします。また、実際に固定形式を使用している場合は、おそらく解析に不変のカルチャを使用することをお勧めします。

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

var dates = Products.Where(d => d.CreateDate >= date);
于 2012-08-23T06:22:44.803 に答える
1

電話

DateTime.ParseExact(EnteredDate, "MM/dd/yyyy", CultureInfo.InvariantCulture); 
于 2012-08-23T06:25:13.180 に答える