0

これは、Outlook カレンダーで予定を見つけようとする私の試みです。

var calendar = outlookApplication.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar);

if (calendar == null || calendar.Items == null)
{
   return null;
}

DateTime appointmentStart = new DateTime(2013, 04, 02, 10, 0 ,0);

string filter = string.Format("[Start] = '{0}'", appointmentStart );
var calendarItems = calendar.Items.Restrict(filter);

この方法では、予定表で予定表を見つけることができませんが、2013 年 4 月 2 日 10:00:00 に予定表があります。

4

2 に答える 2

1

MSDN のこの例を見ると、日付/時刻が文字列で正しくフォーマットされていないようですfilter:

string.Format("[Start] = '{0}'", appointmentStart);

を返します[Start] = '02/04/2013 10:00:00'

string.Format("[Start] = '{0}'", appointmentStart.ToString("g"));

戻り値[Start] = '02/04/2013 10:00'

この出力はシステム カルチャ (fr-FR私の場合) に依存することに注意してください。これは、Outlook が同じものを使用する必要があるためです。

日付と時刻の書式文字列の詳細については、MSDN でも入手できます。

于 2013-03-20T08:34:58.330 に答える
1

http://social.msdn.microsoft.com/Forums/en-US/outlookdev/thread/8a8d6c59-20f4-4aeb-be0d-bfdc7b414611?prof=requiredで回答:

日付/時刻の値で検索する場合は、「=」を使用しないでください。丸め誤差のため、一致することはありません。(開始 > 値 - 1 分) および (開始 < 値 + 1 分) などの範囲を使用します。または、エントリ ID (Namespace.GetItemfromID) で予定を開くか、別のプロパティ (件名など) で検索することをお勧めします。

于 2013-03-20T13:01:20.523 に答える