当我将约会插入交换时,我得到以下问题“EndDate早于StartDate”,有任何人可以帮忙解决这个问题吗?
Appointment appt=new Appointment();
appt.Start=DateTime.Now();
appt.End=DateTime.Now().Addhours(1);
appt.Subject="Test";
appt.Save(WellKnownFolderName.Calendar);
在最后一行我得到了这个问题,但是我给出了正确的开始和结束日期,有人可以告诉我为什么会遇到这个问题吗?
注意:如果我在开始和结束日期给出不同的日期,它将接受。开始和结束日期应该相同,时间只有差异,在这种情况下我只有这个问题。请帮我解决这个问题
答案 0 :(得分:1)
我今天遇到了一个非常类似的问题,但在更新活动时。我相信我的解决方案与问题相关。
我正在更新在中欧时区创建的活动。 我的代码按以下顺序设置属性:
appt.Start = DateTime.UtcNow;
appt.End = DateTime.UtcNow.AddMinutes(30);
appt.StartTimeZone = TimeZoneInfo.FindSystemTimeZoneById("UTC");
appt.EndTimeZone = TimeZoneInfo.FindSystemTimeZoneById("UTC");
使用Managed Api,我的印象是财产分配的顺序对实际操作没有影响,但在这种情况下我发现它不是真的。
Managed Api生成了以下XML:
<soap:Body>
<m:UpdateItem ConflictResolution="AlwaysOverwrite" SendMeetingInvitationsOrCancellations="SendToNone">
<m:SavedItemFolderId>
<t:FolderId Id="AQMkADJkAAA==" />
</m:SavedItemFolderId>
<m:ItemChanges>
<t:ItemChange>
<t:ItemId Id="AAMkADJkZWZiODMxLWNRE" />
<t:Updates>
<t:SetItemField>
<t:FieldURI FieldURI="calendar:EndTimeZone" />
<t:CalendarItem>
<t:EndTimeZone Name="UTC" Id="UTC">
...
</t:EndTimeZone>
</t:CalendarItem>
</t:SetItemField>
<t:SetItemField>
<t:FieldURI FieldURI="calendar:Start" />
<t:CalendarItem>
<t:Start>2015-10-19T15:30:00.000Z</t:Start>
</t:CalendarItem>
</t:SetItemField>
<t:SetItemField>
<t:FieldURI FieldURI="calendar:End" />
<t:CalendarItem>
<t:End>2015-10-19T16:00:00.000Z</t:End>
</t:CalendarItem>
</t:SetItemField>
...
<t:SetItemField>
<t:FieldURI FieldURI="calendar:StartTimeZone" />
<t:CalendarItem>
<t:StartTimeZone Name="UTC" Id="UTC">
...
</t:StartTimeZone>
</t:CalendarItem>
</t:SetItemField>
</t:Updates>
</t:ItemChange>
</m:ItemChanges>
</m:UpdateItem>
</soap:Body>
切换属性分配的顺序以设置时区首先为我解决了问题。
当事件上的原始时区等于设置的时区时,也不会出现问题。就在切换时区时。
请注意,这并不是真正的解决方案。更好的方法是克隆托管api并修复库中的问题。
答案 1 :(得分:0)
也许问题是时区。当您使用现在Working with Time Zones in Exchange 2010 Exchange Web Services未推荐的时区DateTimeKind.Local
时。你会尝试appt.Start = new DateTime(2010, 2, 12, 10, 0, 0, DateTimeKind.Unspecified);
吗?
我使用Exchange2007,您的代码适用于我,但时区处理在2010年发生了变化。