Aflați cum funcționează fusurile orare cu un API gestionat EWS și Exchange Web Services în Exchange.
Zonele de timp nu sunt ceva ce majoritatea utilizatorilor oferă mult pentru a determina. Cu toate acestea, ele sunt concepte importante atunci când se specifică o dată și o oră utilizând API-ul Exchange Web Services gestionat sau Exchange Web Services. Fusurile orare incorecte într-un API gestionat EWS sau într-o aplicație Exchange Web Services pot duce la consecințe imprevizibile. Manipularea corectă a fusurilor orare, puteți obține cu ușurință atât timp cât știți cum.
Dacă utilizați API-ul Exchange Web Services gestionat, fusurile orare sunt tratate automat în majoritatea cazurilor. Fără nicio acțiune explicită a utilizatorului, API folosește fusul orar local al computerului client și toate conversiile necesare în fundal. Acest lucru este foarte util cu efectul potrivit, dar aveți și alte opțiuni.
O opțiune este lucrarea pentru proprietatea ExchangeService.TimeZone. Această proprietate specifică fusul orar pentru toate interogările executate cu interfața API pentru servicii Web gestionate Exchange. Această proprietate este numai pentru citire; Singura modalitate de a configura este prin constructorul de clasă. Dacă utilizați ExchangeService (System.TimeZoneInfo) sau proiectantul ExchangeService (ExchangeVersion, System.TimeZoneInfo). puteți specifica o anumită fus orar ca obiect System.TimeZoneInfo. Dacă utilizați unul dintre ceilalți constructori, obiectul TimeZoneInfo nu intră ca parametru. clasa ExchangeService setează proprietatea TimeZone la valoarea curentă a fusului orar de pe computerul client.
Fusul orar reprezentat de proprietatea TimeZone exprimă dacă sarcina este o anumită fus orar sau o lăsați ca fusul orar al calculatorului client, toate datele și orele. API-ul de servicii administrate Exchange Web Service furnizează toate proprietățile datei și orei ca o structură System.DateTime. Prin urmare, dacă setați toate proprietățile datei și orei, nu puteți fi momentul în care procesarea specificată este procesată în funcție de valoarea proprietății DateTime.Kind pe obiectul DateTime. Dacă proprietatea Kind este nespecificată. Valoarea DateTime este interpretată ca în fusul orar specificat de proprietatea TimeZone. Dacă citiți proprietățile datei și orei, toate proprietățile DateTime sunt exprimate în acest fus orar.
Tabelul 1. Proprietățile zonei orare din API-ul Exchange Web Services gestionat
Dacă utilizați serviciile Web Exchange, fusurile orare nu sunt tratate automat pentru dvs. și circumstanțele sunt puțin mai complicate. Impactul fusurilor orare ale serviciului Exchange Web Service asupra cererilor și răspunsurilor depinde de mai mulți factori:
Versiunea Exchange specificată în elementul RequestServerVersion
Fusul orar specificat în elementul TimeZoneContext (dacă este prezent)
Fusul orar specificat în MeetingTimeZone. StartTimeZone. sau elemente EndTimeZone (dacă sunt prezente la întâlniri sau întâlniri)
Fusul orar specificat în elementele XML datetime (dacă există)
Dacă fusul orar este prezent în valoarea dateTime (UTC sau o anumită fus orar), această valoare este întotdeauna interpretată ca fiind această fusul orar. Dacă nu există fus orar, valoarea Interpretare depinde de setul specific de alte elemente asociate cu fusul orar.
Tabelul 2. Fusul orar al elementelor din serviciile Web Exchange și efectele acestora
Ca fusul orar specificat în valoare
Dacă elementul StartTimeZone este prezent, valoarea elementelor Start și ReminderDueBy este interpretată ca fusul orar în elementul StartTimeZone. În caz contrar, valoarea acestor elemente este interpretată ca fusul orar în elementul TimeZoneContext.
Dacă elementul EndTimeZone este prezent, valoarea elementului Start este interpretată ca fusul orar în elementul EndTimeZone. În caz contrar, valoarea elementului de sfârșit este interpretată ca fusul orar în elementul TimeZoneContext.
Elementele din afara CalendarItem sau MeetingRequest sunt interpretate ca fusul orar în elementul TimeZoneContext.
Fusul orar în elementul StartTimeZone. dacă acest parametru este specificat, fusul orar în elementul TimeZoneContext. dacă nu este așa
Ca fusul orar specificat în valoare
Ca fusul orar în TimeZoneContext
Fus orar în Contextul temporal
Ca fusul orar specificat în valoare
Dacă elementul StartTimeZone este prezent, valoarea elementelor Start și ReminderDueBy este interpretată ca fusul orar în elementul StartTimeZone. În caz contrar, valoarea acestor elemente este interpretată ca UTC.
Dacă elementul EndTimeZone este prezent, valoarea elementului Start este interpretată ca fusul orar în elementul EndTimeZone. În caz contrar, valoarea elementului final este interpretată ca UTC.
Elementele din afara CalendarItem sau MeetingRequest sunt interpretate ca UTC.
Fusul orar în elementul StartTimeZone. dacă acest parametru este specificat, UTC, dacă nu este așa
Ca fusul orar specificat în valoare
Atunci când interpretați răspunsurile de la un server, trebuie să verificați întotdeauna valoarea fiecărui element și să interpretați valoarea în consecință. Schimbarea valorii va include întotdeauna fusul orar (UTC sau un anumit fus orar).
La crearea unei întâlniri sau întâlniri, fusul orar care se aplică la ora de începere este considerat a crea un fus orar pentru întâlnire. În plus față de data / orele de interpretare la crearea unei întâlniri sau întâlniri, fusul orar de creare are următoarele efecte pentru articol:
Dacă elementul de întâlnire, fusul orar de creare este afișat în panoul Informații Outlook pentru solicitările de întâlnire primite de participanți, dacă acest fus orar este diferit de fusul orar al clientului.