Volver a la página principal
martes 17 septiembre 2024
28

Cómo trabajar con fechas en Ruby

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.

Crear una fecha con la clase 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

Obtener la fecha actual

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

Formatear una fecha

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

Sumar y restar fechas

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

Comparar fechas

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

Uso de 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

Más información

Para más detalles sobre cómo trabajar con fechas en Ruby, visita la documentación oficial de Ruby.

Etiquetas:
ruby
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer