SharePointのアイテム更新日時など、DateTime型の値の取得につまづいたのでメモ。
作成日時、更新日時を取得する場合、SharePointでは2つの取り方がある。
-
SPWeb.Created(例:サイト)
プロパティから取る方法。プログラムから取るなら普通はこちら。 -
SPListItem["Created"](例:リストアイテム)
リストの列値から取る方法。アイテムの情報が欲しい場合だけかな...
問題はこの2つで取れる時間が違うということ。
例えば日本時間の 2019/02/01 AM8:00 に作成したとすると、以下のようになる。
- の場合 2019/01/31 23:00
- の場合 2019/02/01 08:00
####DateTime型のプロパティKind
なぜか。DateTime型のプロパティKind の値が違うから。
- の場合 Utc
- の場合 Unspecified
####解決策
DateTime.Kind == DateTimeKind.Utc の場合は
DateTime.ToLocalTime() を利用してローカル時間を取得する。
SPListItem.Created.ToLocalTime();
→2019/02/01 08:00