Quiero obtener la zona horaria predeterminada (PST) de mi sistema desde Python. ¿Cuál es la mejor manera de hacer eso? Me gustaría evitar bifurcar otro proceso.Obtener información de zona horaria del sistema en Python?
Respuesta
Eche un vistazo al Módulo Python Time.
from time import gmtime, strftime
print strftime("%z", gmtime())
estándar del Pacífico Hora
que debería funcionar:
import time
time.tzname
devuelve una tupla de dos cadenas: el primero es el nombre de la zona horaria local sin cambio horario, el segundo es el nombre de la zona horaria DST local.
Para llevar esto más adelante, puede usar 'time.tzname [time.daylight]' para obtener el nombre de la zona horaria actual, teniendo en cuenta el horario de verano. –
Nuevamente, 'time.daylight' no indica que DST esté activo. Simplemente indica si la zona horaria observa o no el horario de verano. Está buscando 'time.localtime(). Tm_isdst'. – marr75
Solo para agregar para los usuarios de Windows, los valores para la zona horaria se definieron en 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Time Zones \' – swdev
Si prefiere desfases de UTC sobre cadenas:
time.timezone/-(60*60)
Esto se calculará incorrectamente cuando (/ if) DST esté en efecto. – marr75
Proporciona un desplazamiento como en la respuesta de Thomash UTC, pero toma en cuenta el horario de verano.
>>> import time
>>> offset = time.timezone if (time.localtime().tm_isdst == 0) else time.altzone
>>> offset/60/60 * -1
-9
El valor de time.timezone
o time.altzone
es en cuestión de segundos al oeste de UTC (con áreas del este de UTC conseguir un valor negativo). Esto es lo opuesto a cómo realmente nos gustaría, de ahí el * -1.
time.localtime().tm_isdst
será cero si los ahorros de luz diurna no están vigentes actualmente (aunque esto puede no ser correcto si un área ha cambiado recientemente su ley de ahorro de luz natural).
EDITAR: marr75 es correcto, he editado la respuesta en consecuencia.
Para estar seguro, creo que la verificación de compensación debe invertirse (altzone si dst = 1 else timezone). Si el estado del DST es de alguna manera desconocido, 'tm_isdst' será' -1', y el código actual sería 'altzone' en este caso. Para las regiones que no usan DST, este valor nunca es correcto, por lo que 'timezone' probablemente sea la alternativa. (No estoy seguro si '-1' es realmente posible salida de' localtime') – nmclean
[toda la zona alterna, la solución basada en la zona horaria puede fallar en algunos casos extremos] (http://bugs.python.org/issue1647654) – jfs
Los fragmentos de código para calcular el desplazamiento son incorrectos, vea http://bugs.python.org/issue7229.
La forma correcta de manejar esto es:
def local_time_offset(t=None):
"""Return offset of local zone from GMT, either at present or at time t."""
# python2.3 localtime() can't take None
if t is None:
t = time.time()
if time.localtime(t).tm_isdst and time.daylight:
return -time.altzone
else:
return -time.timezone
Esto es, con toda probabilidad, no es la pregunta exacta que el PO pidió, pero hay dos fragmentos incorrectos en la página y hora insectos chupan para rastrear y arregla
1. si sabes 'tm_isdst'; no es necesario que compruebe 'daylight' 2. [todas las soluciones basadas en' altzone', 'timezone' pueden fallar en algunos casos extremos] (http://bugs.python.org/issue1647654) – jfs
- 1. Obtener información de zona horaria en VBA (Excel)
- 2. Geocodificación con información de zona horaria
- 3. obtener usuario zona horaria
- 4. Python Zona horaria conversión
- 5. ¿Cómo obtener la zona horaria del cliente?
- 6. Configuración zona horaria en Python
- 7. Obtener zona horaria a partir de DateTime
- 8. Obtener zona horaria por país y región
- 9. Cómo obtener clientes Zona horaria en JavaScript?
- 10. Cómo obtener la zona horaria actual del usuario en C#
- 11. zona horaria local del dispositivo
- 12. CÓMO OBTENER: Configuración de la zona horaria del servidor FTP?
- 13. ¿Cómo obtener información del sistema en PHP?
- 14. .NET Obtener el desplazamiento de zona horaria por nombre de zona horaria
- 15. Cómo obtener la zona horaria de las propiedades en CultureInfo
- 16. ¿Existe un repositorio central para información de zona horaria?
- 17. ¿Cómo puedo obtener un nombre de zona horaria legible para humanos en Python?
- 18. ¿Cómo obtener la información del sistema con Python?
- 19. java incorrecta zona horaria
- 20. cómo detectar la zona horaria del cliente?
- 21. Posición del GPS en la zona horaria
- 22. Obtener el desplazamiento UTC del nombre de la zona horaria en python
- 23. ¿Cómo puedo obtener la zona horaria del servidor local?
- 24. zona horaria local en Ruby
- 25. Google auth2 API ¿falta información sobre la zona horaria?
- 26. postgres zona horaria predeterminada
- 27. Django: problema de zona horaria
- 28. zona horaria por Coordinar
- 29. Java GregorianCalendar Zona horaria
- 30. Python: strftime, gmtime no respeta la zona horaria
¿estamos viendo diferentes documentos o es ''% Z''? – SilentGhost
@ SilentGhost: "% z" y "% z" son exactamente iguales en Python. – ahawker
sí, pero ** mayúsculas ** 'Z' y ** minúsculas **' z' no lo son. – SilentGhost