Часові пояси і ews в exchange

Дізнайтеся, як часові пояси працюють з керований API EWS і веб-служб Exchange в Exchange.

Часові пояси не те, що більшість користувачів надати набагато визначитися. Проте вони важливі концепції при вказівці дати і часу за допомогою керованого інтерфейсу API веб-служб Exchange або веб-служб Exchange. Неправильним часові пояси в керований API EWS або веб-служб Exchange додаток може привести до непередбачуваних наслідків. Обробка часових поясах належним чином, можна легко до тих пір, поки ви знаєте, як.

Якщо ви використовуєте керований API веб-служб Exchange, часові пояси в більшості випадків обробляються для вас автоматично. Без будь-яких явних дій з боку користувача API використовує локальний часовий пояс клієнтського комп'ютера і всі необхідні перетворення в фоновому режимі. Це дуже корисно при потрібну вплив, але у вас є інші параметри.

Один з варіантів - це завдання для властивості ExchangeService.TimeZone. Це властивість визначає часовий пояс для всіх запитів, які виконуються з керований API веб-служб Exchange. Це властивість доступно тільки для читання; Єдиний спосіб його настройка - через конструктор класу. Якщо ви використовуєте ExchangeService (System.TimeZoneInfo) або конструктор ExchangeService (ExchangeVersion, System.TimeZoneInfo). можна вказати конкретного часового поясу як об'єкт System.TimeZoneInfo. Якщо ви використовуєте один з інших конструкторів, не вступлять в якості параметра об'єкт TimeZoneInfo. клас ExchangeService встановлює для властивості TimeZone значення поточного часового поясу на клієнтському комп'ютері.

Часовий пояс, представлений властивістю TimeZone виражаються чи завдання конкретного часового поясу, або залиште його як часовий пояс клієнтського комп'ютера, всі дати і часу. Керований API веб-служб Exchange надає всі властивості дати та часу як System.DateTime структури. Тому якщо задати всі властивості дати та часу, бути не можна, що час, коли зазначений обробляється відповідно до значення властивості DateTime.Kind на об'єкті DateTime. Якщо властивість Kind має значення Unspecified. значення DateTime інтерпретується як в часовому поясі, зазначеному властивістю TimeZone. Якщо ви читаєте властивості дати та часу, все властивості DateTime виражаються в цей часовий пояс.

У таблиці 1. Властивості часового поясу в керований API веб-служб Exchange

Якщо ви використовуєте веб-служб Exchange, часові пояси не обробляється для вас автоматично і обставини трохи складніше. Вплив часові пояси веб-служб Exchange запити і відповіді залежить від декількох факторів:

The Exchange version specified in the RequestServerVersion element

The time zone specified in the TimeZoneContext element (if present)

The time zone specified in the MeetingTimeZone. StartTimeZone. or EndTimeZone elements (if present on appointments or meetings)

Часовий пояс, зазначеного в XML-елементи dateTime (якщо вони є)

Якщо часовий пояс присутній в значення dateTime (UTC або конкретного часового поясу), це значення завжди інтерпретується як цього часового поясу. При наявності без часового поясу Інтерпретація значення залежить від конкретний набір інші елементи пов'язаних з ними часового поясу.

У таблиці 2. Часовий пояс елементів в веб-служб Exchange і їх ефекти

Як часовий пояс, зазначені в значення

If the StartTimeZone element is present, the value of the Початок and ReminderDueBy elements are interpreted as the time zone in the StartTimeZone element. Otherwise, the value of those elements are interpreted as the time zone in the TimeZoneContext element.

If the EndTimeZone element is present, the value of the Початок element is interpreted as the time zone in the EndTimeZone element. Otherwise, the value of the End element is interpreted as the time zone in the TimeZoneContext element.

Elements outside the CalendarItem or MeetingRequest are interpreted as the time zone in the TimeZoneContext element.

Часовий пояс в елементі StartTimeZone. якщо цей параметр вказаний, часовий пояс в елементі TimeZoneContext. якщо це не так

Як часовий пояс, зазначені в значення

Як часовий пояс в елементі TimeZoneContext

Часовий пояс в елементі TimeZoneContext

Як часовий пояс, зазначені в значення

If the StartTimeZone element is present, the value of the Початок and ReminderDueBy elements are interpreted as the time zone in the StartTimeZone element. Otherwise, the value of those elements are interpreted as UTC.

If the EndTimeZone element is present, the value of the Початок element is interpreted as the time zone in the EndTimeZone element. Otherwise, the value of the End element is interpreted as UTC.

Elements outside the CalendarItem or MeetingRequest are interpreted as UTC.

Часовий пояс в елементі StartTimeZone. якщо цей параметр вказаний, UTC, якщо це не так

Як часовий пояс, зазначені в значення

При інтерпретації відповідей з сервера, слід завжди перевіряти значення кожного елемента і інтерпретації значення відповідним чином. Exchange в значення завжди будуть включені часового поясу (UTC або конкретного часового поясу).

При створенні зустрічі або зборів, часовий пояс, який застосовується до часу початку вважається створення часовий пояс для зустрічі. Крім Інтерпретація date / times при створенні зустрічі або зборів, часовий пояс створення має наступні ефекти для елемента:

Якщо елемент зборів, часовий пояс створення відображається в панель інформації Outlook на запрошення на збори, одержувані учасників, якщо цей часовий пояс відрізняється від часового поясу їх клієнта.