1409 Stimmen

Datum im Format JJJJ-MM-TT in Shell-Skript

Ich habe es mit $(date) in meinem Bash-Shell-Skript, aber ich möchte das Datum in YYYY-MM-DD Format.
Wie kann ich das bekommen?

12 Stimmen

Die Kommentare müssen mindestens 15 Wörter lang sein. Datum -I

18 Stimmen

In der Tat date -I ist alles, was Sie brauchen. Ich habe Jahre gebraucht, um darauf zu stoßen.

5 Stimmen

date -I funktioniert nur unter Linux mit GNU-Tools, nicht unter macOS / BSD; die Installation von Gebräu --> brew install coreutils macht gdate -I verfügbar

26voto

xu2mao Punkte 516
date -d '1 hour ago' '+%Y-%m-%d'

Die Ausgabe würde lauten 2015-06-14 .

23voto

wjandrea Punkte 21948

Mit der aktuellen Bash (Version 4.2) können Sie die eingebaute printf mit dem Formatmodifikator %(strftime_format)T :

$ printf '%(%Y-%m-%d)T\n' -1  # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1  # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1  # Capture as var $date

printf ist viel schneller als date da es ein Bash-Builtin ist, während date ist ein externer Befehl.

Auch das, printf -v date ... ist schneller als date=$(printf ...) da es nicht erforderlich ist, eine Subshell zu forken.

16voto

Luís de Sousa Punkte 4569

Ich verwende die folgende Formulierung:

TODAY=`date -I`
echo $TODAY

Sehen Sie sich die Manpage für date gibt es eine Reihe weiterer nützlicher Optionen:

man date

12voto

kgui Punkte 3859

Wenn Sie das Jahr in einem zweistelligen Format angeben möchten, z. B. 17 statt 2017, gehen Sie wie folgt vor:

DATE=`date +%d-%m-%y`

9voto

Miguel Punkte 2843

Ich benutze $(date +"%Y-%m-%d") ou $(date +"%Y-%m-%d %T") mit Zeit und Stunden.

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