Ruby ofrece varias formas de trabajar con fechas a través de las clases integradas Date, Time y la gema DateTime. Estas clases permiten crear, manipular y formatear fechas, además de realizar cálculos útiles como sumas y restas de días, meses o años.
Date
La clase Date es parte de la biblioteca estándar de Ruby, pero debe requerirse antes de usarse:
require 'date'
fecha = Date.new(2024, 9, 17) # Año, mes, día
puts fecha # Muestra: 2024-09-17
Para obtener la fecha actual en Ruby, puedes usar la clase Date o Time:
require 'date'
fecha_actual = Date.today
puts fecha_actual # Muestra la fecha de hoy
hora_actual = Time.now
puts hora_actual # Muestra la fecha y hora actuales
Puedes convertir una fecha a diferentes formatos usando el método strftime. Esto permite mostrar las fechas en distintos estilos:
require 'date'
fecha = Date.new(2024, 9, 17)
formato = fecha.strftime("%d/%m/%Y") # Formato día/mes/año
puts formato # Muestra: 17/09/2024
Algunos de los formatos más comunes son:
%Y: Año completo (ej. 2024)
%m: Mes (01-12)
%d: Día del mes (01-31)
%H: Hora (24 horas)
%M: Minutos
%S: Segundos
Puedes realizar cálculos sencillos con fechas, como sumar o restar días, meses o años:
require 'date'
fecha = Date.today
nueva_fecha = fecha + 30 # Suma 30 días
puts nueva_fecha # Muestra la fecha 30 días después de hoy
fecha_menos_dias = fecha - 10 # Resta 10 días
puts fecha_menos_dias # Muestra la fecha 10 días antes de hoy
Puedes comparar dos fechas usando operadores de comparación (==, >, <, etc.):
require 'date'
fecha1 = Date.new(2024, 9, 17)
fecha2 = Date.today
if fecha1 > fecha2
puts "La fecha 2024-09-17 es futura."
else
puts "La fecha 2024-09-17 ya ha pasado o es hoy."
end
DateTime para manejar fechas y horas
Si necesitas manejar tanto fechas como horas de manera más precisa, puedes usar la clase DateTime, que es parte de la biblioteca estándar:
require 'date'
fecha_hora = DateTime.now
puts fecha_hora # Muestra la fecha y hora actuales
formato = fecha_hora.strftime("%d/%m/%Y %H:%M")
puts formato # Muestra la fecha y hora en formato personalizado
Para más detalles sobre cómo trabajar con fechas en Ruby, visita la documentación oficial de Ruby.
Jorge García
Fullstack developer