关于以编程方式为夏令时变基日历

许多国家通过推进时钟来遵守夏令时 (DST) ,以便晚上有更长的日光。 这通常通过在春季设置时钟提前一小时,并在秋季设置时钟一小时来完成。 在本主题中,春季和秋季之间的此时间段称为 DST 期间。 大多数国家/地区都有自己的 DST 开始和结束时间的法规。 DST 期间的日期可能会因年份而变化,并且每次 DST 法规更改时,用户都必须更新其 Microsoft Outlook 日历。

如果使用 Windows Vista 或更高版本的 Windows 版本,或者启用了 Windows 自动更新,则 DST 中的更改可能不会影响。 否则,应安装适用于 Windows 的 DST 更新。 无论是由 IT 部门代表你还是以家庭用户的身份自动安装更新,在安装 Windows 的 DST 更新后,在 DST 期间发生的某些现有约会都可能会显示不正确的时间。 这适用于定期约会和单实例约会。 必须更新这些约会才能在 Outlook、Outlook Web App 中以及基于协作数据对象 (CDO) 的应用程序中正确显示这些约会。 由于 DST 而更新日历上错误显示的约会称为重定日历基准。

Outlook 为用户提供工具,Exchange Server为管理员提供了重定日历基的工具。 Outlook 为 Outlook 用户提供时区数据更新工具。 使用此工具,用户可以更新自己的日历。 Exchange Server提供了 Exchange 日历更新工具,可帮助管理员避免将 Outlook 工具广泛部署到所有用户而导致的困难,并确保每个用户正确运行 Outlook 工具。

除了依赖用户运行时区数据更新工具或管理员来运行 Exchange 日历更新工具外,第三方 MAPI 客户端软件开发人员还可以下载 DLL、Tzmovelib.dll。 通过使用此程序集,开发人员可以使用 Outlook 和Exchange Server在其日历重基工具中使用的相同 API。

以下列表显示了日历重基 API:

若要使用日历重基 API 编写约会重基工具,可以使用以下过程:

  1. 使用 IOlkApptRebaser::BeginEnumerateAppointmentsIOlkApptRebaser::EndEnumerateAppointments 查找应聘的约会, 如有必要,请提供信息,使用户能够决定要调整的约会。 或者,使用 MAPI 或 Outlook 对象模型通过分析 PidLidAppointmentTimeZoneDefinitionStartDisplayPidLidAppointmentTimeZoneDefinitionEndDisplayPidLidAppointmentTimeZoneDefinitionRecur 属性来检查约会的时间和重复信息。

  2. 使用 HrCreateApptRebaserIOlkApptRebaser::BeginRebaseAppointmentsIOlkApptRebaser::EndRebaseAppointments 调整约会的基数。

另请参阅