簡體   English   中英

如何為Outlook約會設置時區(通過EWS API創建時)

[英]How to Set Timezone for Outlook Appointment.When if created via EWS API

我們正在使用Exchange Web服務API創建約會。 在創建過程中,我們將時區設置為本地時區。 收件人查看邀請時,是在當地時區的正確時間,唯一的事情是Exchange會在約會正文的開頭添加“ When”和“ Where”,如下所示:

約定

無論何時最終用戶的時區,“何時”的時區始終處於UTC時區。 這給我們客戶的最終用戶造成了一些困惑。 EWS API的約會文檔中。當屬性為時 ,只有Get方法,而沒有Set方法。 在一項測試中,我們嘗試根據建議的文檔將“首選區域性”設置為“刪除區域性”,並且仍在UTC時間顯示“何時”。 設定首選文化

不知何故,我在互聯網上找不到任何相關信息。 有人可以在這里闡明如何在特定時區顯示“何時”嗎?

您所查看的內容在消息正文中被稱為下級文本,該問題通常發生在約會的更新過程中,您似乎將其作為發布圖像的最后一行。 問題是因為未將時區作為更新請求的一部分發送,服務器會將下層文本設置為utc。 解決此問題的一種方法是,您可以使用手動添加TimeZoneContext標頭

OnSerializeCustomSoapHeaders事件,例如

        service.OnSerializeCustomSoapHeaders += service_OnSerializeCustomSoapHeaders;
        appointment.Update(ConflictResolutionMode.AlwaysOverwrite, SendInvitationsOrCancellationsMode.SendToAllAndSaveCopy);
        service.OnSerializeCustomSoapHeaders -= service_OnSerializeCustomSoapHeaders;

    static void service_OnSerializeCustomSoapHeaders(XmlWriter writer)
    {
        writer.WriteRaw(Environment.NewLine + "    <t:TimeZoneContext><t:TimeZoneDefinition Id=\"" + TimeZone.CurrentTimeZone.StandardName + "\"/></t:TimeZoneContext>" + Environment.NewLine);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM