In un programma Ruby 1.9, desidero formattare l'ora corrente come Thu 1:51 PM
. Quale codice di formato devo usare per l'ora del giorno (1
in questo esempio)?Come si scrive l'ora dell'ora senza zero iniziale o spazio iniziale?
Time.now.strftime '%a %I:%M %p' #=> "Thu 01:51 PM"
Time.now.strftime '%a %l:%M %p' #=> "Thu 1:51 PM"
%I
presenta uno zero (01
). %l
ha uno spazio iniziale ( 1
). Non vedo nessun altro codice di formato per l'ora nello strftime documentation. Non riesco a utilizzare .lstrip
perché lo spazio si trova nel mezzo della stringa. Potrei usare .gsub(/ +/, " ")
, ma mi chiedo se c'è un modo meno hacky e semplice.
Vorrei che ogni soluzione fosse così semplice e diretta. +1 – flarn2006
Questa soluzione potrebbe funzionare solo su sistemi Unix, non su Windows. [Questa risposta a "Python' strftime' - data senza prima 0? "] (Https://stackoverflow.com/a/2073189/578288) riguarda lo stesso compito in Python e dice che'% -' funziona solo su Unix. [Perché "% -d" o "% -e" rimuove lo spazio iniziale o zero?] (Https://stackoverflow.com/q/28894172/578288) dice che l'incompatibilità è dovuta al fatto che Python chiama il sistema dell'operatore sottostante 'strftime', che potrebbe avere estensioni specifiche della piattaforma. Non so se Ruby's 'strftime' è lo stesso. –