CodeGym /Cursos /Python SELF ES /Biblioteca datetime

Biblioteca datetime

Python SELF ES
Nivel 14 , Lección 5
Disponible

9.1 Trabajo con fechas y tiempo

A los programadores muy a menudo les toca trabajar con fechas y tiempo en sus programas. Así que no es de sorprender que en Python existan dos bibliotecas estándar para estas ocasiones: datetime y time.

La biblioteca datetime es parte de la biblioteca estándar de Python y proporciona clases para trabajar con fechas y tiempo. Permite crear, manipular y formatear fechas y tiempo, así como realizar operaciones aritméticas con ellos.

Clases principales de la biblioteca datetime

Clase datetime.date

Esta clase representa una fecha (año, mes, día) sin tiempo. Es útil para trabajar con fechas del calendario.

Ejemplo de uso:


import datetime

# Creación de un objeto de fecha
d = datetime.date(2023, 5, 24)
print(d)  # Salida: 2023-05-24
            
# Obtener la fecha actual
today = datetime.date.today()
print(today)
            
# Acceder a los atributos de año, mes y día
print(d.year)  # Salida: 2023
print(d.month)  # Salida: 5
print(d.day)  # Salida: 24

Clase datetime.time

Esta clase representa el tiempo (horas, minutos, segundos, microsegundos) sin fecha. Es útil para trabajar con la hora del día.

Ejemplo de uso:


import datetime

# Creación de un objeto de tiempo
t = datetime.time(14, 30, 45)
print(t)  # Salida: 14:30:45
            
# Acceder a los atributos de horas, minutos y segundos
print(t.hour)  # Salida: 14
print(t.minute)  # Salida: 30
print(t.second)  # Salida: 45

Clase datetime.datetime

Esta clase combina fecha y tiempo (año, mes, día, horas, minutos, segundos, microsegundos). Es útil para trabajar con momentos específicos en el tiempo.

Ejemplo de uso:


import datetime

# Creación de un objeto de fecha y tiempo
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
print(dt)  # Salida: 2023-05-24 14:30:45
        
# Obtener la fecha y tiempo actuales
now = datetime.datetime.now()
print(now)
        
# Acceder a los atributos de fecha y tiempo
print(dt.year)  # Salida: 2023
print(dt.month)  # Salida: 5
print(dt.day)  # Salida: 24
print(dt.hour)  # Salida: 14
print(dt.minute)  # Salida: 30
print(dt.second)  # Salida: 45

Clase datetime.timedelta

Esta clase representa la diferencia entre dos momentos en el tiempo, expresada en días, segundos y microsegundos. Es útil para realizar operaciones aritméticas con fechas y tiempo.

Ejemplo de uso:


import datetime

# Creación de un objeto timedelta
delta = datetime.timedelta(days=10, hours=5, minutes=30)
print(delta)  # Salida: 10 days, 5:30:00
        
# Sumar timedelta a una fecha
dt = datetime.datetime(2023, 5, 24, 14, 30)
new_dt = dt + delta
print(new_dt)  # Salida: 2023-06-03 20:00:00
        
# Restar timedelta a una fecha
earlier_dt = dt - delta
print(earlier_dt)  # Salida: 2023-05-14 09:00:00

9.2 Formateo y análisis de fechas y tiempo

A menudo necesitamos no solo trabajar con fechas, sino convertirlas en una cadena de texto de un formato específico. El proceso inverso, cuando convertimos una cadena en un objeto, generalmente se conoce como análisis. Para estas operaciones, Python también tiene sus propias clases y métodos:

Método strftime()

El método strftime() se utiliza para formatear objetos datetime en una cadena de texto con un formato específico.

Ejemplo de uso:


import datetime

dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
    
# Formateo de fecha y tiempo
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_dt)  # Salida: 2023-05-24 14:30:45
    
# Formateo solo de la fecha
formatted_date = dt.strftime("%d-%m-%Y")
print(formatted_date)  # Salida: 24-05-2023
    
# Formateo solo del tiempo
formatted_time = dt.strftime("%H:%M:%S")
print(formatted_time)  # Salida: 14:30:45

Método strptime()

El método strptime() se utiliza para analizar cadenas en objetos datetime según un formato específico.

Ejemplo de uso:


import datetime

# Análisis de una cadena en un objeto datetime
date_str = "24-05-2023 14:30:45"
dt = datetime.datetime.strptime(date_str, "%d-%m-%Y %H:%M:%S")
print(dt)  # Salida: 2023-05-24 14:30:45
    
# Análisis de una cadena en un objeto date
date_str = "24-05-2023"
d = datetime.datetime.strptime(date_str, "%d-%m-%Y").date()
print(d)  # Salida: 2023-05-24
    
# Análisis de una cadena en un objeto time
time_str = "14:30:45"
t = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print(t)  # Salida: 14:30:45

9.3 Trabajo con zonas horarias

Como muestra la práctica, nuestros servicios son utilizados por personas de todo el mundo, y, desafortunadamente, viven en diferentes países y tienen diferentes zonas horarias (timezone). Por lo tanto, como programador, también necesitas saber cómo trabajar con ellas.

Y, por supuesto, en Python hay una clase para este caso:

Clase timezone

La clase timezone del módulo datetime permite trabajar con zonas horarias.


import datetime

# Creación de un objeto datetime con zona horaria UTC
utc_dt = datetime.datetime(2023, 5, 24, 14, 30, 45, tzinfo=datetime.timezone.utc)
print(utc_dt)  # Salida: 2023-05-24 14:30:45+00:00
        
# Conversión a otra zona horaria
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
tokyo_dt = utc_dt.astimezone(tokyo_tz)
print(tokyo_dt)  # Salida: 2023-05-24 23:30:45+09:00

Hemos analizado la biblioteca datetime de manera muy superficial. En el futuro volveremos a ella y aprenderemos a usarla para tareas más específicas. Por ahora, solo quería presentárosla y ampliar, por así decirlo, vuestra perspectiva sobre el conjunto de bibliotecas estándar.

De cualquier biblioteca, lo primero que debéis saber es que existe, y tener una idea de lo que se puede hacer con su ayuda. La lista de funciones, sus parámetros y todas sus posibilidades siempre se pueden encontrar en la documentación oficial.

1
Cuestionario/control
Decoradores, nivel 14, lección 5
No disponible
Decoradores
Decoradores
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION