W programie Ruby 1.9 chcę sformatować bieżący czas, taki jak Thu 1:51 PM
. Jakiego formatu kodu należy użyć na godzinę dnia (1
w tym przykładzie)?Jak mogę napisać godzinę czasu bez wiodącego zera lub przestrzeni wiodącej?
Time.now.strftime '%a %I:%M %p' #=> "Thu 01:51 PM"
Time.now.strftime '%a %l:%M %p' #=> "Thu 1:51 PM"
%I
ma wiodącą zero (01
). %l
ma wiodącą przestrzeń ( 1
). Nie widzę żadnego innego kodu formatu dla godziny w strftime documentation. Nie mogę użyć .lstrip
, ponieważ spacja znajduje się w środku łańcucha. Mogę użyć .gsub(/ +/, " ")
, ale zastanawiam się, czy jest mniej hacky, prostszy sposób.
Życzenie, aby każde rozwiązanie było takie proste i proste. +1 – flarn2006
To rozwiązanie może działać tylko w systemach uniksowych, a nie w systemie Windows. [Ta odpowiedź na "Python' strftime' - date without leading 0? "(Https://stackoverflow.com/a/2073189/578288) dotyczy tego samego zadania w Pythonie i mówi, że'% -' działa tylko na Unix. [Dlaczego "% -d" lub "% -e" usuwa wiodącą przestrzeń lub zero?] (Https://stackoverflow.com/q/28894172/578288) mówi, że niezgodność jest spowodowana tym, że Python wywołuje system operacyjny operatora 'strftime', który może mieć rozszerzenia specyficzne dla platformy. Nie wiem, czy "strftime" Ruby jest takie samo. –