python pytz

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *