Python tiene dos módulos principales:
time→ trabaja con timestamps (segundos desde 1970)datetime→ trabaja con fechas y horas de forma más humana y flexible
1. Módulo time
Obtener el timestamp actual
import time
ahora = time.time()
print(ahora)
Salida típica:
1712345678.1234
Pausar la ejecución
time.sleep(2) # pausa 2 segundos
Formatear fechas con time
print(time.strftime("%d/%m/%Y %H:%M:%S"))
2. Módulo datetime
Este es el módulo más usado en proyectos reales.
Fecha y hora actual
from datetime import datetime
ahora = datetime.now()
print(ahora)
Crear fechas manualmente
fecha = datetime(2024, 5, 10, 14, 30)
print(fecha)
Formatear fechas (strftime)
print(ahora.strftime("%d-%m-%Y"))
print(ahora.strftime("%H:%M:%S"))
Formatos útiles:
| Código | Significado |
|---|---|
%d | Día |
%m | Mes |
%Y | Año |
%H | Hora (24h) |
%M | Minutos |
%S | Segundos |
Convertir texto a fecha (strptime)
texto = "15/03/2025 18:45"
fecha = datetime.strptime(texto, "%d/%m/%Y %H:%M")
print(fecha)
Diferencias entre fechas (timedelta)
from datetime import timedelta
hoy = datetime.now()
mañana = hoy + timedelta(days=1)
print(mañana - hoy)
3. Fechas y horas con zona horaria (timezone)
from datetime import datetime, timezone, timedelta
utc = datetime.now(timezone.utc)
print(utc)
ACTIVIDAD PRÁCTICA: “Sistema de registro de eventos (logger simple)”
Objetivo: que tus alumnos aprendan a registrar eventos con marcas de tiempo, como hacen los sistemas profesionales.
Enunciado
Crea un programa que:
Cada vez que el usuario escriba un comando, lo guarde en un archivo
log.txt.Cada entrada debe incluir:
Fecha y hora exacta
El comando introducido
Si el usuario escribe
"salir", el programa termina.Al finalizar, muestra cuántos comandos se registraron.
Pistas
Usa
datetime.now().strftime()Usa
with open(..., "a")para añadir líneasUsa un contador
Solución propuesta
from datetime import datetime
contador = 0
with open("log.txt", "a", encoding="utf-8") as f:
while True:
comando = input("Introduce un comando ('salir' para terminar): ")
if comando.lower() == "salir":
break
# Obtener fecha y hora
marca = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
# Escribir en el log
f.write(f"[{marca}] {comando}\n")
contador += 1
print(f"\nComandos registrados: {contador}")
Ejemplo de salida
Introduce un comando ('salir' para terminar): iniciar servidor
Introduce un comando ('salir' para terminar): comprobar estado
Introduce un comando ('salir' para terminar): salir
Comandos registrados: 2