0

ユーザーの DateOfBirth を表示する列がある Telerik グリッドがあります。以下は、私の Telerik Grid コラムの部分的なコードです。

columns.Bound(c => c.DOB).Title("DateofBirth").Format("{0:MM/dd/yyyy}");

UI の日付部分に表示する必要があるため.Date、以下に示すようにモデルから戻ります。

public DateTime? DOB
    {
        get
        {
            if (DateOfBirth > DateTime.MinValue)
                return DateOfBirth.Date;
            else
                return null;
        }
    }

DateOfBirth は、日付と時刻の形式を持つデータベースから取得した日付です。問題は、一部のシナリオでは日付が 1 日ずれて表示されることであり、常にではありません。その原因は何ですか?

たとえば、DBから返された日付が次の場合、06/21/2012 12:00:00 PM私はそれを次のように取得しています06/20/2012

4

1 に答える 1

0

文化固有の日時に関係している可能性があります。異なる文化を使用していますか。たとえば、データベースが世界時であり、特定のカルチャを取得するために日付を解析する必要があるシナリオに遭遇しました。

数時間の変更で、日付が 1 日ずれることになります。

使用例は次のとおりです: http://msdn.microsoft.com/en-us/library/ey1cdcx8

コード例:

DateTime date = DateTime.Parse(dbvalue, null, System.Globalization.DateTimeStyles.AdjustToUniversal);

または System.Globalization.DateTimeStyles.AssumeLocal を使用してローカルにアクセスします。

于 2012-06-21T14:21:37.650 に答える