# Datetime

> <mark style="background-color:blue;">**El módulo datetime de Python facilita el trabajo con fechas y horas.**</mark> Puedes mostrar fechas en distintos formatos y crear objetos de fecha con solo unas líneas de código.

conocimientos requeridos antes de leer el articulo:

* [Librerías](https://zerophoenix.gitbook.io/zerophoenix/programacion-y-scripting/python/librerias-y-modulos)
* [print](https://zerophoenix.gitbook.io/zerophoenix/programacion-y-scripting/python/print-imprimir)

## Importación y uso de Python Datetime

```python
import datetime # importar la libreria

# conseguir la fecha y hora actual
fecha_actual = datetime.datetime.now()

# crear y guardar una fecha
fecha_propia = datetime.date(1945, 9, 2)
print(f"mi fecha definida: {fecha_propia}")

# crear y guardar una hora
horas = datetime.time(17, 30)

# combinar las fechas y horas creadas
full = datetime.datetime(2025, 7, 23, 17, 30)

# calcular una fecha futura
futuro = fecha_actual + datetime.timedelta(days=7)
print(f"la fecha en 7 días: {futuro}")

# diferencia de dias entre fechas
fecha1 = datetime.datetime(2025, 7, 20)
fecha2 = datetime.datetime(2025, 7, 23)
diferencia = fecha2 - fecha1
print("Días de diferencia:", diferencia.days)

# imprimir la zona horaria (UTC)
from datetime import timezone
utc_actual = datetime.datetime.now(timezone.utc)
print("Hora actual en UTC:", utc_actual)

# mostrar solo la hora
hora_actual = datetime.datetime.now.time()

# validación de fechas
try:
    f = datetime.strptime("31/02/2024", "%d/%m/%Y")  # Febrero 31 no existe
except ValueError as e:
    print("Fecha inválida:", e)

# el año mas pequeño permitido en un objeto (1)
datetime.MINYEAR

# el año mas grande permitido en un objeto (9999)
datetime.MAXYEAR
```
