Agregar fechas y horas en Python

Requisito previo: Python – datetime.tzinfo()

Python admite el módulo de fecha y hora para realizar manipulaciones de fecha y hora. El módulo de fecha y hora permite al usuario realizar varias operaciones aritméticas relacionadas con la fecha y la hora, la extracción de varios marcos de tiempo y el formateo de la salida en diferentes formatos. Los objetos de este tipo son inmutables. El módulo se puede importar al espacio de trabajo de Python usando el siguiente comando:

import datetime

Los objetos de fecha y hora también admiten un atributo de zona horaria adicional, que es opcional. Este atributo se puede asignar a una instancia de una subclase de la clase tzinfo. La clase de objeto tzinfo puede satisfacer los siguientes requisitos, es decir, capturar información sobre el desplazamiento fijo de la hora UTC, es decir, la propia UTC o las zonas horarias EST y EDT de América del Norte, el nombre de la zona horaria correspondiente y también si el horario de verano está actualmente en vigor. tzinfo es una clase base abstracta. Cualquier subclase concreta arbitraria de tzinfo puede necesitar implementar sus propios métodos. El desplazamiento de una zona horaria se refiere a cuántas horas está la zona horaria con respecto a la hora universal coordinada (UTC).

Determinar el tipo de objeto de fecha y hora usando tzinfo

Hay dos tipos de objetos, ingenuos y conscientes. En caso de que el objeto no contenga ninguna información de zona horaria, entonces el objeto de fecha y hora es ingenuo, de lo contrario consciente. En el caso de un objeto ingenuo, tzinfo devuelve Ninguno.

Python3

# importing required module
import datetime
  
# create object
datetime_obj = datetime.datetime.now()
  
print(datetime_obj.tzinfo)

Producción:

None

En caso de que necesitemos usar objetos de fecha y hora conscientes, se puede especificar explícitamente una zona horaria. La biblioteca pytz se puede usar para localizar el objeto de fecha y hora creado, que proporciona información sobre la zona horaria creada. Los objetos de fecha y hora ingenuos y los objetos de fecha y hora conscientes no se pueden comparar; de lo contrario, arrojará un error.

Python3

# importing the required modules
import datetime
import pytz
  
# instantiate datetime object
obj = datetime.datetime.now()
  
# specifying the timezone using pytz library
tzone = pytz.timezone("America/Los_Angeles")
  
# localizing the datetime object
datetime_obj = tzone.localize(obj)
  
# extracting time zone info of the object
print(datetime_obj.tzinfo)

Producción:

America/Los_Angeles

Sustitución de la zona horaria del objeto de fecha y hora

Se crea una instancia de un objeto de zona horaria ingenuo mediante el objeto datetime.now(). La nueva zona horaria se puede especificar explícitamente usando el módulo pytz.timezone(). La zona horaria especificada se sigue utilizando. El método replace se invoca sobre el objeto datetime y el argumento tzinfo se establece en el valor de la zona horaria reemplazada. Luego, este valor se extrae utilizando el método astimezone() sobre el objeto ingenuo de zona horaria y tomando la zona horaria modificada como su argumento.  

Python3

# importing required modules
from datetime import datetime
import pytz
  
# creating a datetime object
curr_datetime = datetime.now()
print("Current timezone")
print(curr_datetime)
  
# creating timezone using pytz package
changed_timezone = pytz.timezone('US/Pacific')
  
# replacing timezone using the specified timezone value
curr_datetime = curr_datetime.replace(tzinfo=changed_timezone)
curr_datetime = curr_datetime.astimezone(changed_timezone)
print("Replaced timezone")
print(curr_datetime)

Producción:

Current timezone
2021-02-12 20:20:50.668454
Replaced timezone
2021-02-12 20:20:50.668454-07:53

Publicación traducida automáticamente

Artículo escrito por yippeee25 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 *