2010-10-24 11 views
6

Qualcuno conosce un modo in un file ICS per specificare che tutte le ore sono scritte nell'ora locale nel luogo? Ho pensato di lasciare la "Z" alla fine dei tempi e di utilizzare TZID = "America/Denver" (ad esempio) nelle linee DTSTART e DTEND, ma MS Outlook presuppone che tutti i tempi siano nel tempo standard della posizione. Tutti i miei eventi prendono in considerazione l'ora legale.MS Outlook interpreta erroneamente i file ICS in ora locale: ora legale in overcourcing

Devo riscrivere l'app in modo che i tempi siano in UTC?

Devo includere un blocco all'inizio che definisce qualsiasi fuso orario? Questo è difficile dal momento che voglio supportare ogni fuso orario nel database Olson.

Ma attualmente MS Outlook spinge ogni appuntamento durante l'ora legale in avanti di un'ora, il che è sbagliato.

Grazie in anticipo per qualsiasi aiuto.

+0

Mi piacerebbe anche ascoltare una risposta. Immagino ci siano due opzioni per questo: 1) Configurare i tempi di avvio indipendenti dal fuso orario nel file stesso, se possibile 2) Controllare il fuso orario dell'utente sul lato server e pubblicare un file .ics specifico in fase di esecuzione. –

risposta

3

Ho avuto un problema molto simile a questo, e ho fatto molte ricerche ma la soluzione non è ancora la migliore. Non sono sicuro del motivo per cui Outlook non gestisce correttamente le ore locali, rende la pianificazione degli appuntamenti locali per altri fusi orari un grosso problema. Il standard indica chiaramente che se non viene specificato alcun fuso orario e non viene utilizzato il carattere UTC "Z", l'ora dovrebbe essere la stessa indipendentemente dal fuso orario in cui si trova il ricevitore. Tuttavia, Outlook non aderisce a questo e modifica l'ora in base all'ora del client di invio & che riceve l'ora del client.

Nel mio caso, ho un sito in esecuzione che consente a determinati utenti di pianificare altri utenti per gli appuntamenti. Questi utenti possono trovarsi in molti fusi orari diversi. Fortunatamente per me, il sito è specificamente ospitato in un solo fuso orario. Pertanto, la mia soluzione era scrivere una semplice istruzione C# switch che compensasse il tempo in base a dove l'utente ricevente è relativo a dove si trova il server. I non specificare un fuso orario nel file .ics e I non contrassegnare l'ora come UTC tramite il carattere 'Z'.