2011年2月26日土曜日

[2007]予定表リストをOMによる更新

毎度忘れるので、メモメモ

オブジェクトモデルで予定表リストへ登録すると何故か9時間ずれるのですよね。
下記の様に、時間をUTCへ変換すればOKです。

SPSite site = new SPSite("http://server/");
SPWeb web = site.OpenWeb();
SPRegionalSettings oRegionalSettings = web.RegionalSettings;
SPTimeZone tz = oRegionalSettings.TimeZone;
DateTime start = DateTime(2011, 2, 26, 1, 30, 0, 0);
DateTime end = DateTime(2011, 2, 26, 2, 30, 0, 0);

SPListItem item = web.Lists["リスト"].Items.Add();
item["タイトル"] = "タイトル";
item["開始時刻"] = tz.LocalTimeToUTC(start).ToString("yyyy-MM-ddTHH:mm:ssZ");
item["終了時刻"] = tz.LocalTimeToUTC(end).ToString("yyyy-MM-ddTHH:mm:ssZ");
item["説明"] = "備考";
item.Update();

【参考URL】
http://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.sptimezone.localtimetoutc%28v=office.12%29.aspx

0 件のコメント: