media-scientific - IT Blog

the backend developers blog

Ruby: DateTime || Date formatieren

Vorlesen mit webReader

Hier mal eine Auflistung von Werkzeugen zur Formatierung von Daten in Ruby.

time = Time.now

Liefert die aktuelle Zeit, genau wie

DateTime.now.to_s

Will man nun eine schönere Ausgabe erreichen, ist der Befehl strftime dafür wie geschaffen:

>> DateTime.now.strftime("%Y_%m_%d")
=> "2009_03_12"

oder

>> Time.now.strftime("%Y_%m_%d")
=> "2009_03_12"

Hier eine Liste der möglichen Attribute, um Zeitangaben beliebig Formatieren zu können:

  • %a - Wochentage abgekürzt (Mo, Di, usw…)
  • %A - Ausgeschriebener Wochentag (Montag)
  • %b - Typische Abkürzung eines Monats (Feb)
  • %B - Ausgeschriebener Monat (Januar)
  • %y - verkürzte Jahresangabe (00..99)
  • %Y - Ausgeschriebenes Jahr (2007)
  • %d - Tag des Monats (01..31)
  • %H - Stunde von: (00..23)
  • %I - Stunde von: (01..12)
  • %j - Tag eines Jahres (001..366)
  • %m - Monat (01..12)
  • %M - Minuten (00..59)
  • %S - Sekundenzahl (00..60)
  • %w - Tag in der Woche (Sonntag ist 0, 0..6)
  • %Z - Zeitzone

Es gibt noch Angaben für verschiedene Wochenausgaben, jedoch benötigt man diese eh so gut wie nie.

Um Zeitangaben zu vergleichen, solltet ihr diese mal zu eine Float umwandeln. Dann wird schnell einiges klar:

=> Thu Mar 12 18:29:07 0100 2009
>> y.to_f
=> 1236878947.86008
>> y = Time.new
=> Thu Mar 12 18:29:14 0100 2009
>> y.to_f
=> 1236878954.85964

Das bedeutet, man muss auf Stellen verzichten, um eine Zeit im Rahmen von Minuten vergleichen zu können…

>> ("%.6f" % y.to_f).to_i
=> 1236878954

Viel Spaß beim ausprobieren…

Leave a Reply

You must be logged in to post a comment.