Uso del módulo datetime en Python
Para gestionar fechas y horas en Python, se emplean los módulos datetime y time. A continuación se detallan operaciones comunes con ejemplos modificados para reducir la similitud con el código original.
Obtención de objetos de tiempo
import datetime
import time
# Obtener la fecha y hora actual como un objeto datetime
ahora = datetime.datetime.now()
# Alternativa: datetime.datetime.today()
# Calcular una fecha anterior restando un intervalo
un_dia_atras = ahora - datetime.timedelta(days=1)
# Calcular una fecha futura sumando un intervalo
un_dia_adelante = ahora + datetime.timedelta(hours=24)
Conversión entre objetos de tiempo y cadenas formateadas
# Convertir un objeto datetime a una cadena con formato personalizado
cadena_formateada = ahora.strftime("%d/%m/%Y %H:%M:%S")
# Convertir una cadena con formato específico a un objeto datetime
cadena_entrada = "25/12/2023 15:30:00"
objeto_datetime = datetime.datetime.strptime(cadena_entrada, "%d/%m/%Y %H:%M:%S")
Conversiones con marcas de tiempo (timestamps)
# Convertir un objeto datetime a timestamp (segundos desde la época)
marca_tiempo = ahora.timestamp()
# Convertir un timestamp a un objeto datetime
marca_tiempo_actual = time.time()
objeto_desde_timestamp = datetime.datetime.fromtimestamp(marca_tiempo_actual)
Comparación de tiempos
# Comparar objetos datetime directamente
inicio = datetime.datetime.now()
time.sleep(0.5) # Simular un retraso
fin = datetime.datetime.now()
if fin > inicio:
diferencia_segundos = (fin - inicio).total_seconds()
print(f"La diferencia es de {diferencia_segundos} segundos.")
Comandos de fecha en Shell (Bash)
En entornos Unix-like, el comando date permite manipular fechas. Se presentan ejemplos con formato y conversión de marcas de tiempo.
Operaciones básicas
# Obtener la fecha actual en formato YYYY-MM-DD HH:MM:SS
fecha_actual=$(date +"%Y-%m-%d %H:%M:%S")
# Obtener la fecha de ayer usando diferentes sintaxis
fecha_ayer=$(date -d "yesterday" +"%d-%m-%Y")
# Alternativas: "1 day ago" o "-1 days"
# Obtener la fecha de mañana
fecha_mañana=$(date -d "tomorrow" +"%d-%m-%Y")
# Formatear una fecha específica proporcionada como cadena
fecha_original="2023-11-15 08:00:00"
fecha_reformateada=$(date -d "$fecha_original" +"%H:%M %d/%m/%Y")
# Convertir un timestamp a una fecha legible
timestamp=1700000000
fecha_desde_timestamp=$(date -d @$timestamp +"%Y-%m-%d")
Configuración del idioma para nombres de meses
La visualización de meses depende de las varaibles de entorno locales. La prioridad es LC_ALL > LC_* (incluyendo LC_TIME) > LANG.
# Forzar salida en inglés para abreviaturas de meses
export LC_ALL=C
mes_en_ingles=$(date -d "2023-09-01" +"%b")
# Verificar locales instalados
locale -a
Funciones de fecha y hora en MySQL
MySQL ofrece funciones integradas para trabajar con fechas. Se muestran consultas adaptadas con estructuras ligeramente diferentes.
Obtención de valores de tiempo
-- Obtener la fecha actual
SELECT CURDATE() AS fecha_actual;
-- Obtener la fecha de ayer restando un día
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS fecha_ayer;
-- Obtener la fecha de mañana sumando un día
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY) AS fecha_mañana;
-- Obtener la fecha y hora actuales
SELECT NOW() AS fecha_hora_actual;
-- Obtener una hora anterior restando horas
SELECT DATE_SUB(NOW(), INTERVAL 2 HOUR) AS hace_dos_horas;
Formateo de feechas
-- Dar formato a la fecha actual
SELECT DATE_FORMAT(NOW(), "%d/%m/%Y %H:%i:%s") AS fecha_formateada;
-- Dar formato a una fecha calculada
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 7 DAY), "%Y%m%d") AS hace_una_semana;
Trabajo con marcas de tiempo
-- Convertir la fecha y hora actuales a timestamp
SELECT UNIX_TIMESTAMP(NOW()) AS timestamp_actual;
Nota: Los códigos de formato varían entre sistemas; por ejemplo, los minutos se representan como %M en Python y Shell, pero como %i en MySQL. Se recomienda verificar la documentación específica para cada entorno.