Pytz trae la base de datos Olson tz a Python y, por lo tanto, es compatible con casi todas las zonas horarias. Este módulo sirve para las funcionalidades de conversión de fecha y hora y ayuda al usuario a atender la base de clientes internacionales. Habilita los cálculos de zona horaria en nuestras aplicaciones de Python y también nos permite crear instancias de fecha y hora conscientes de la zona horaria.
Instalación
El módulo Python pytz se puede instalar de la manera indicada.
- Usando la línea de comando:
pip install pytz
- Usando tarball, ejecute el siguiente comando como usuario administrativo:
python setup.py install
- Con las herramientas de configuración, se descargará la última versión del índice de paquetes de Python:
easy_install --upgrade pytz
Convertir zonas horarias
Al usar la función astimezone() podemos convertir la hora en una zona horaria diferente.
Sintaxis: astimezone(t)
Parámetro: t es el tiempo para ser convertido
Devolución: zona horaria convertida
Ejemplo:
Python3
from datetime import datetime from pytz import timezone format = "%Y-%m-%d %H:%M:%S %Z%z" # Current time in UTC now_utc = datetime.now(timezone('UTC')) print(now_utc.strftime(format)) # Convert to Asia/Kolkata time zone now_asia = now_utc.astimezone(timezone('Asia/Kolkata')) print(now_asia.strftime(format))
Producción
2020-12-30 04:38:16UTC+0000
2020-12-30 10:08:16 IST+0530
Atributos de pytz de Python
Hay algunos atributos en el módulo pytz para ayudarnos a encontrar las strings de zonas horarias admitidas. Estos atributos ayudarán a comprender mejor este módulo.
- todas las zonas horarias
Devuelve la lista de todas las zonas horarias disponibles con pytz.all_timezones:
Python3
import pytz print('the supported timezones by the pytz module:', pytz.all_timezones, '\n')
Producción:
El resultado anterior muestra algunos valores, porque la lista es muy grande.
- all_timezones_set
Devuelve el conjunto de todas las zonas horarias disponibles con pytz.all_timezones_set:
Python3
import pytz print('all the supported timezones set:', pytz.all_timezones_set, '\n')
Producción
El orden de salida será diferente en su sistema porque es un conjunto.
- Common_timezones, Common_timezones_set
Devuelve la lista y el conjunto de zonas horarias de uso común con pytz.common_timezones, pytz.common_timezones_set.
Python3
import pytz print('Commonly used time-zones:', pytz.common_timezones, '\n') print('Commonly used time-zones-set:', pytz.common_timezones_set, '\n')
Producción
- nombres_de_paises
Devuelve un dictado del código ISO alfa-2 del país y el nombre del país como un par clave-valor.
Python3
import pytz print('country_names =') for key, val in pytz.country_names.items(): print(key, '=', val, end=',') print('\n') print('equivalent country name to the input code: =', pytz.country_names['IN'])
Producción
country_names =AD = Andorra,AE = Emiratos Árabes Unidos,TD = Chad,….,ZA = Sudáfrica,ZM = Zambia,ZW = Zimbabue,
nombre de país equivalente al código de entrada: India
- países_zonas horarias
Devuelve un diccionario de código alfa-2 ISO de país como clave y una lista de zonas horarias admitidas para una clave de entrada particular (código de país) como valor
Python3
import pytz print('country_timezones =') for key, val in pytz.country_timezones.items(): print(key, '=', val, end=',') print('\n') print('Time-zones supported by Antartica =', pytz.country_timezones['AQ'])
Producción
country_timezones =
AD = [‘Europa/Andorra’],AE = [‘Asia/Dubai’],AF = [‘Asia/Kabul’],…..,ZM = [‘África/Lusaka’],ZW = [‘ África/Harare’],
Zonas horarias admitidas por Antartica = [‘Antarctica/McMurdo’, ‘Antarctica/Casey’, ‘Antarctica/Davis’, ‘Antarctica/DumontDUrville’, ‘Antarctica/Mawson’, ‘Antarctica/Palmer’, ‘Antártida/Rothera’, ‘Antártida/Syowa’, ‘Antártida/Troll’, ‘Antártida/Vostok’]
Ejemplo de PhytonPytz
A continuación se presentan algunos ejemplos para mostrar cómo se puede utilizar este módulo.
Ejemplo 1: crear una instancia de fecha y hora con información de zona horaria.
Python3
# import the modules import pytz import datetime from datetime import datetime # getting utc timezone utc = pytz.utc # getting timezone by name kiev_tz = pytz.timezone('Europe/Kiev') print('UTC Time =', datetime.now(tz=utc)) print('IST Time =', datetime.now(tz=kiev_tz))
Producción
Hora UTC = 2020-12-15 08:23:17.063960+00:00
Hora IST = 2020-12-15 10:23:17.063988+02:00
Ejemplo 2:
Python3
# import the modules import pytz import datetime d = datetime.datetime(1984, 1, 10, 23, 30) # strftime method allows you to print a string # formatted using a series of formatting directives d1 = d.strftime("%B %d, %Y") # isoformat method used for quickly generating # an ISO 8601 formatted date/time d2 = d.isoformat() print(d1) print(d2)
Producción
10 de enero de 1984
1984-01-10T23:30:00
localizar()
localize() es la función correcta para usar para crear objetos conscientes de fecha y hora con un valor de fecha y hora fijo inicial. El objeto consciente de fecha y hora resultante tendrá el valor de fecha y hora original. Esta función es proporcionada por la biblioteca de python. pytz.localize() es útil para hacer consciente una zona horaria ingenua. es útil cuando un cliente front-end envía una fecha y hora al backend para que se trate como una zona horaria particular (generalmente UTC).
Ejemplo :
Python3
import pytz import datetime from datetime import datetime # using localize() function, my system is on IST timezone ist = pytz.timezone('Asia/Kolkata') utc = pytz.utc local_datetime = ist.localize(datetime.now()) print('IST Current Time =', local_datetime.strftime('%Y-%m-%d %H:%M:%S %Z%z')) print('Wrong UTC Current Time =', utc.localize( datetime.now()).strftime('%Y-%m-%d %H:%M:%S %Z%z'))
Producción
IST Hora actual = 2020-12-15 08:49:56 IST+0530
Hora actual UTC incorrecta = 2020-12-15 08:49:56 UTC+0000
Ejemplo
Python3
from datetime import datetime from pytz import timezone # Set the time to noon on 2019-08-19 naive = datetime(2019, 8, 19, 12, 0) # Let's treat this time as being in the UTC timezone aware = timezone('UTC').localize(naive) print(aware)
Producción
2019-08-19 12:00:00+00:00
Publicación traducida automáticamente
Artículo escrito por divyasri7702 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA