兑换及其RDOAppointmentmentItem,约会的开始和结束时间,导致Outlook Mobile App中的日期不同

时间:2019-06-04 05:58:27

标签: c# .net outlook outlook-addin outlook-redemption

使用Interop.Redemption dll(版本5.20.0.5298) 我们使用插件在.net应用程序和Outlook之间同步约会。 当我在.net应用程序中创建“全天”事件时,我们将其同步为类型为“ RDOAppointmentItem”

的约会项

在Outlook桌面应用程序上查看时,此RDO Appt是正确的,显示为一天中的凌晨12点到次日的凌晨12点。

在Android上使用Outlook移动应用程序(我可以进行测试)时,此RDO Appt在同步到移动应用程序后将显示为前一天到后一天。

我已将问题缩小为移动应用程序使用UTC时间作为开始和结束时间,这是通过将开始时间提前10小时(我是GMT + 10)来实现的

但是,仅当使用RDOAppointmentItem时此问题才变得明显,如果我更改逻辑以使用Outlook Interop标准“ AppointmentItem”并保存,则当它同步到Outlook Mobile App时,全天事件从凌晨12点开始到次日凌晨12点,即一切正常。

StartUTC和EndUTC设置正确,我尝试使用OutlookSpy检查MAPI属性,并且Outlook桌面中的两个约会的所有内容看起来都相同(明智的开始/结束/时区)

使用AppointmentItem

    var apptItem = folder.Items.Add(OlItemType.olAppointmentItem) as AppointmentItem;
    apptItem.AllDayEvent = dotnetAppt.AllDay;
    apptItem.StartUTC = dotnetAppt.StartTime;
    apptItem.EndUTC = dotnetAppt.EndTime;
    apptItem.Subject = dotnetAppt.Subject;
    apptItem.Save();

使用RDOAppointmentItem

    outlookCalendarFolder = rdoSession.GetFolderFromID(_syncSettings.CalendarEntryId))
    rdoAppointment = outlookCalendarFolder.Items.Add(OlItemType.olAppointmentItem) as RDOAppointmentItem;
    rdoAppointment.AllDayEvent = dotnetAppt.AllDay;
    rdoAppointment.StartUTC = dotnetAppt.StartTime;
    rdoAppointment.EndUTC = dotnetAppt.EndTime;
    rdoAppointment.Subject = dotnetAppt.Subject;
    rdoAppointment.Save();

RDOAppointmentItem在其“开始”,“结束”,“ StartUTC”,“ EndUTC”,“时区”或任何其他可能与日期相关的项目属性中是否有特殊之处?

我想不出任何其他解释。

编辑:这是olAppointmentItem上存在的道具,而RDOAppointmentItem缺少这些道具 olAppointmentItem

这是olAppointmentItem上缺少的RDOAppointmentItem上的道具

rdoAppointmentItem

以下是我认为最相关的两个属性的描述,它们在olAppointmentItem上,而不在RDOAppointmentItem上

start timezone

end timezone

希望有帮助

0 个答案:

没有答案