hay un montón de preguntas acerca de las conversiones de fecha y hora UTC y allí no parece haber un consenso de una "mejor manera".Cómo, con pitón, tomar una fecha y hora UTC, los usuarios de autodetección zona horaria, y convertir la fecha y hora a formato deseado?
De acuerdo con esto: http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/, pytz es el mejor camino a seguir. El autor muestra la conversión de zona horaria como esto datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
pero no dice cómo obtener la zona horaria del usuario ...
Este tipo https://stackoverflow.com/a/7465359/523051 dice "localize
ajusta al horario de verano, replace
no"
todos los que veo usando pytz está suministrando su propia zona horaria (users_timezone = timezone("US/Pacific")
), que no entiendo porque no puede saber si es allí donde está su visor ...
Este tipo https://stackoverflow.com/a/4771733/523051 tiene una manera de detectar automáticamente las zonas horarias, pero esto es usar la biblioteca dateutil
y no pytz, tal como se recomienda por tanto Armin Ronacher y los documentos oficiales de python (http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior, justo arriba del ancla en el cuadro amarillo)
Todo lo que necesito es el más simple, a prueba de futuro, todo el horario de verano/etc considerado forma de tomar mi sello datetime.utcnow() (2012-08-25 10:59:56.511479
), conviértalo en la zona horaria del usuario. Y mostrar así:
Aug 25 - 10:59AM
y si el año no es el año en curso, me gustaría decir
Aug 25 '11 - 10:59AM
he aprendido que la tzlocal() no funciona en absoluto en heroku la función anterior simplemente devuelve la hora UTC. – chrickso
también tenga en cuenta que he perdido toda esperanza de que sea una forma confiable de determinar con precisión la zona horaria de un usuario y ajustar los tiempos automáticamente. Veo que Twitter tiene una configuración para ajustar su zona horaria, por lo que esta debe ser la forma: almacenar las preferencias del usuario y usar eso para las conversiones. – chrickso