0

次のようにセッション(date1)に日付を追加したい:

Session["DateLesson"] = date1.ToString("dd.MM.yyyy");

今セッションから私はこの値を取りたいです:

var asd = Session["DateLesson"];
/*asd = "20.04.2012"*/
var datelesson = DateTime.Parse((string) asd);

そしてそれは私にこの例外を与えます:

FormatExceptionが有効な日時として認識されない

4

4 に答える 4

4

ピリオドは、ほとんどのロケールで有効/標準の区切り文字ではありません。DateTime.ParseExact()をフォーマット文字列と組み合わせて使用​​して、関数にその読み取り方法を指示する必要があります。さらに重要なのは、それを日時に読み戻すことが主な目標である場合、セッションに日時をそのまま入れてみませんか?それは私にとってはるかに効率的で、簡単で、保守しやすいようです

于 2012-04-20T13:37:44.640 に答える
1

なぜあなたの日付を文字列として保持するのですか?

次のように簡単に保存できます。

Session["DateLesson"] = date1;

そして、次のように取得します。

var datelesson = (DateTime)Session["DateLesson"];
于 2012-04-20T13:38:20.673 に答える
1
string value = "20.04.2012";
DateTime datetime = DateTime.ParseExact(value, "dd.MM.yyyy", null);

これは戻ります4/20/2012 12:00:00:00 AM

于 2012-04-20T13:40:09.757 に答える
0

値を文字列としてではなく、初期タイプのオブジェクトとして保持します。

public DateTime? DateLesson
{
    get
    {
        DateTime? dateTime = Session["DateLesson"] as DateTime?;
        if (dateTime.HasValue) // not null
        {
            // use dateTime.Value
        }
    }
    set
    {
        Session["DateLesson"] = value;
    }
}
于 2012-04-20T13:39:40.843 に答える