2010-10-24 29 views
6

¿Alguien sabe una forma en un archivo ICS para especificar que todos los horarios se escriban en la hora local en la ubicación? Pensé que dejar la 'Z' fuera del final de los tiempos, y usar TZID = "America/Denver" (por ejemplo) en las líneas DTSTART y DTEND lo logró, pero MS Outlook supone que todos los horarios están en la hora estándar de la ubicación. Mis eventos toman en cuenta el horario de verano.MS Outlook interpreta incorrectamente los archivos ICS en la hora local: sobrecorrección del horario de verano

¿Tengo que volver a escribir la aplicación para que los tiempos estén en UTC?

¿Debo incluir un bloque al principio que defina cualquier zona horaria? Esto es difícil ya que quiero admitir todas las zonas horarias en la base de datos Olson.

Pero actualmente MS Outlook empuja cada cita durante el horario de verano una hora, lo que es incorrecto.

Gracias de antemano por cualquier ayuda.

+0

Me encantaría escuchar una respuesta también. Me imagino que hay dos opciones para esto: 1) Configure las horas de inicio independientes de la zona horaria en el archivo, si es posible 2) Verifique la zona horaria del servidor en el servidor y entregue un archivo .ics específico en tiempo de ejecución. –

Respuesta

3

Tuve un problema muy similar a este, e investigué mucho, pero la solución aún no es la mejor. No estoy seguro de por qué Outlook no maneja las horas locales correctamente, hace que la programación de citas de horario local para otras zonas horarias sea una gran molestia. El standard indica claramente que si no se especifica el huso horario y no se utiliza el carácter UTC 'Z', entonces el tiempo debe ser el mismo sin importar en qué zona horaria esté el receptor. Sin embargo, Outlook no se adhiere a este y cambia el tiempo según la hora de envío del cliente & recibiendo la hora del cliente.

En mi caso, tengo un sitio en ejecución que permite a ciertos usuarios programar citas para otros usuarios. Estos usuarios pueden ubicarse en diferentes zonas horarias. Afortunadamente para mí, el sitio está alojado específicamente en una sola zona horaria. Por lo tanto, mi solución consistía en escribir una instrucción de conmutación C# simple que compensa el tiempo en función de dónde se encuentra el usuario receptor en relación con el lugar donde se encuentra el servidor. I no especifique un huso horario en el archivo .ics e I no marque como UTC a través del carácter 'Z'.

Cuestiones relacionadas