Formateando Fechas y Horas en Ruby on Rails

Publicado el 14 agosto 2018 por Juan Ricardo Castro Lurita @pepoflex

Si estas trabajando con Ruby on Rails, manejando fechas y necesitas cambiar el formato de las fechas es muy sencillo, Ruby on Rails nos ofrece varios métodos para formatear la fecha y la hora al formato que deseemos, veamos en este artículo más detalles.

imagen: udemy.com

En primer lugar para imprimir la fecha y hora en nuestra vista usamos la función Time.now que nos provee RoR (Ruby on Rails)

# Escribimos
<%= Time.now  %>

# Obtenemos 
2018-08-14 10:16:24 -0500

Si queremos formatear la fecha y hora en un formato mas amigable y entendible usaremos el método strftime seguido de las expresiones %F y %T en donde %F es la fecha y %T es el tiempo

# Escribimos
<%= Time.now.strftime("%F %T") %>

# Obtenemos 
2018-08-14 10:16:24

Para trabajar directamente con la fecha podemos usar %Y %m %d en donde %Y es el año, %m es el mes y %d es el día, por ejemplo si queremos cambiar el orden de la fecha en donde queramos mostrar primer el día luego el mes y al final el año, obtenemos un formato mas real y amigable

# Escribimos 
<%= Time.now.strftime("%d-%m-%Y %H:%M") %>

# Obtenemos
14-08-2018 10:16

Si deseas trabajar específicamente con el tiempo, puedes dejar que imprima la fecha normal con %F y para la hora, minuto y segundo usarás %H : %M : %S en donde %H es la hora, %M es el minuto y %S es el segundo, con estos selectores del tiempo puedes manipular tanto la hora, segundo y minuto para el objetivo que desees, por ejemplo vamos a imprimir solo la hora y minuto y excluimos el segundo %S

# Escribimos 
<%= Time.now.strftime("%F %H:%M") %>

# Obtenemos 
2018-08-14 10:16

Y si necesitas imprimir en el idioma local que detecta el navegador, en este caso español, puedes hacer uso de la Gema I18n que viene incluida en el core de las últimas versiones de Ruby on Rails, la hora la podemos crear con strftime y mostramos si es PM o AM con %p

# Escribimos 
Hoy es:
<br>
<%= I18n.l(Date.today, format: '%A, %d de %B de %Y') %>
<br><br>
Hora:
<br>
<%= Time.now.strftime("%H:%M") %>

# Obtenemos 
Hoy es:
martes, 14 de agosto de 2018

Hora:
12:35

Como puedes ver es muy sencillo trabajar con Fechas y Horas en Ruby on Rails, puedes revisar más formatos con la función strftime en este enlace.

Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.