Librerías incluida: datetime
Asi como hay funciones incluidas (built-ins) que se pueden usar sin estar declaradas tambien hay más herramientas de Python disponibles pero que requieren ser importadas.
Importar (con el comando import
o de la forma from X import Y
)
en Python es disponibilizar nueva herramientas (fuenciones y otras) en
nuestro código.
Fecha y hora: datetime
El manejo de fechas y horas básico en Python se hace con la librería datetime
.
Fechas simples con date
Si solo necesitamos una fecha general solo con día + mes + año podemos usar
objetos de tipo date
.
from datetime import date
hoy = date.today()
print(hoy)
# 2022-02-12
print(type(hoy))
# <class 'datetime.date'>
# date (año, mes, dia)
agosto_27_2022 = date(2022, 8, 27)
Variación de tiempo con timedelta
Para sumar o restar persiodos de tiempo a una fecha existe timedelta
:
from datetime import date, timedelta
hoy = date.today()
manana = hoy + timedelta(days=1)
print(manana)
# 2022-02-13
Fecha + hora = momento exacto con datetime
Si necesitamos más precision que solo dia + mes + año debemos usar datetime.datetime
Nota: datetime como libreria incluye un objeto con el mismo nombre pero son cosas distintas. Uno es la libreria y otro es la clase para construir fecha/horas o datetimes.
from datetime import datetime, timedelta
ahora = datetime.now()
print(ahora)
# 2022-02-12 14:35:16.687589
print(type(ahora))
# <class 'datetime.datetime'>
en_15 = ahora + timedelta(minutes=15)
print(en_15)
# 2022-02-12 14:50:16.687589
# la diferencia entre dos fechas, es un timedelta
a = datetime(2022,3,4)
b = datetime(1988,2,11,6,7,8)
c = a - b
print(c)
# imprime 12439 days, 17:52:52
type(c)
# imprime <class 'datetime.timedelta'>
fecha <—> string
En muchos casos es requirido pasar de fecha a strings y viceversa.
Para estos casos se usan las funciones strftime
(fecha a
string) y strptime
(string a fecha).
from datetime import date, datetime
hoy = date.today()
print(hoy.strftime("%d/%m/%Y"))
# 12/02/2022
print(hoy.strftime("%Y-%m-%d"))
# 2022-02-12
print(hoy.strftime("%d de %B de %Y"))
# 12 de February de 2022
# pasar de string a fecha
fecha_str = '2022-09-21'
fecha = datetime.strptime(fecha_str, "%Y-%m-%d")
print(fecha)
# 2022-09-21 00:00:00
Tareas
Hacer una función que le pida al usuario que inserte su fecha de nacimiento y se le devuelva hace cuantos días nació.