4 Stimmen

Wie kann ich das Format eines Datums über die Befehlszeile ändern?

Wie lässt sich ein Datum am schnellsten in ein Format konvertieren, beispielsweise

2008-06-01

auf ein Datum in einem anderen Format, z. B.

So 1. Juni 2008

Der wichtige Teil ist eigentlich das "Sun", denn je nach dem Tagesnamen muss ich möglicherweise andere Dinge ändern - auf nicht-deterministische Weise. Ich benutze GNU bash, Version 3.2.17(1)-release (i386-apple-darwin9.0) .

[Hintergrund: Der Grund, warum ich es von der Kommandozeile aus machen möchte, ist, dass ich es eigentlich in einen TextMate-Befehl schreiben möchte... Das ist eine lästige Aufgabe, die ich ständig in TextMate erledigen muss.]

0voto

brian d foy Punkte 124323

Wenn es Ihnen nur um den Wochentag geht, versuchen Sie nicht, Zeichenketten zuzuordnen. Das funktioniert nicht, wenn sich das Gebietsschema ändert. Die %u Format geben Sie die Tagesnummer an:

 $ date -j -f "%Y-%m-%d" "2008-01-03" +"%u"
 4

Und in der Tat, das war ein Donnerstag. Sie können diese Zahl als Index für ein Array in Ihrem Programm verwenden, oder einfach die Zahl selbst verwenden.

Siehe die date und strftime Manpages für weitere Details. Die date manpage unter OS X ist allerdings die falsche, da sie diese Optionen nicht auflistet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X