¿Cómo trabajar correctamente con Timezone?

Estoy leyendo mucho sobrezona horaria, compensar, UTC, hora local, funciones de javascript, Horario de verano, tocino y estoy tratando de unir todo esto para construir una estructura sólida / correcta para mi aplicación.

Supongamos que mi aplicación es algo como StackOverflow.

Así es como estoy haciendo ...

El servidor está en otro país, así que lo configuré en UTC 00:00.Estoy almacenando fecha comoDateTimeOffset.soyno almacenamientoTimeZoneID.La fecha se envía al cliente en este formato:2012-07-19T14:30:00-03:00.Estoy usando filtro angular para convertirlo a la hora local.

Tengo algunas preguntas al respecto ...

1º Servidor TimeZone?

Acerca de mi servidor (servidor único) ... ¿debería ejecutarse con un UTC "neutral" (+00: 00)? ¿Y qué pasa si, en el futuro, nos mudamos a una granja donde los servidores se ejecutan en diferentes ubicaciones?

2º ¿Qué debo guardar?

Actualmente, estoy almacenando solo fecha comoDateTimeOffset. Estoy leyendo acerca de salvar elTimeZoneID Pero no estoy viendo ningún uso para esto. ¿Me estoy perdiendo de algo?

O debo guardar la fecha comoDateTimeUtc con unTimeZoneID y convertir manualmente cada fecha con elTimeZone ¿clase?

3º ¿Cómo convertir a la hora local?

¿Es seguro convertir datos en el cliente? ¿O las conversiones de fecha deberían estar siempre en el lado del servidor?

4º Sobre DST.

Utilizando mi enfoque actual. ¿Se respetará el horario de verano?