En un programa de Ruby 1.9, quiero formatear la hora actual como Thu 1:51 PM
. ¿Qué código de formato debo usar para la hora del día (1
en este ejemplo)?¿Cómo escribo la hora del tiempo sin un cero inicial o espacio inicial?
Time.now.strftime '%a %I:%M %p' #=> "Thu 01:51 PM"
Time.now.strftime '%a %l:%M %p' #=> "Thu 1:51 PM"
%I
tiene un cero (01
). %l
tiene un espacio líder ( 1
). No veo ningún otro código de formato para la hora en el strftime documentation. No puedo usar .lstrip
porque el espacio está en el medio de la cadena. Podría usar .gsub(/ +/, " ")
, pero me pregunto si hay una manera menos hacky, más simple.
Ojalá que cada solución fuera así de simple y directa. +1 – flarn2006
Esta solución podría funcionar solo en sistemas Unix, no en Windows. [Esta respuesta a "Python' strftime' - date without leading 0? "] (Https://stackoverflow.com/a/2073189/578288) es sobre la misma tarea en Python, y dice que'% -' solo funciona en Unix. [¿Por qué "% -d", o "% -e" elimina el espacio inicial o cero?] (Https://stackoverflow.com/q/28894172/578288) dice que la incompatibilidad se debe a que Python llama al sistema subyacente del operador 'strftime', que puede tener extensiones específicas de la plataforma. No sé si el '' strftime'' de Ruby es el mismo. –