Zum Beispiel möchte ich das aktuelle Datum und die aktuelle Uhrzeit im folgenden Format anzeigen:
yyyymmddhhmmss
Wie mache ich das? Es scheint , wie die meisten Datumsformate mit kommen -
, /
, :
etc.
Zum Beispiel möchte ich das aktuelle Datum und die aktuelle Uhrzeit im folgenden Format anzeigen:
yyyymmddhhmmss
Wie mache ich das? Es scheint , wie die meisten Datumsformate mit kommen -
, /
, :
etc.
Antworten:
Bitte schön:
date +%Y%m%d%H%M%S
Wie man date
oben erwähnt, können Sie den folgenden date
Befehl verwenden:
date [OPTION]... [+FORMAT]
Das heißt, Sie können ihm einen Formatparameter geben, beginnend mit a +
. Sie können wahrscheinlich die Bedeutung der von mir verwendeten Formatierungssymbole erraten:
%Y
ist für das Jahr%m
ist für Monat%d
ist für den TagSie finden dieses und andere Formatierungssymbole in man date
.
Wenn Sie Bash verwenden, können Sie auch einen der folgenden Befehle verwenden:
printf '%(%Y%m%d%H%M%S)T' # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1 # same as above
printf '%(%Y%m%d%H%M%S)T' -2 # prints the time the shell was invoked
Sie können die Option verwenden -v varname
, um das Ergebnis zu speichern, $varname
anstatt es auf stdout zu drucken:
printf -v varname '%(%Y%m%d%H%M%S)T'
Während der Datumsbefehl immer in einer Subshell (dh in einem separaten Prozess) ausgeführt wird, ist printf ein integrierter Befehl und daher schneller.
%
Optionen Sie übergeben können, scheint dies der date
Befehl zu sein. So erhalten man date
Sie die verfügbaren Optionen.
Interessante / lustige Möglichkeit, dies mithilfe der Parametererweiterung zu tun (erforderlich bash 4.4
oder neuer):
${parameter@operator} - P operator
Die Erweiterung ist eine Zeichenfolge, die das Ergebnis der Erweiterung des Parameterwerts ist, als wäre es eine Eingabeaufforderungszeichenfolge.
$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
"`date +%Y-%m-%d %H:%M:%S`"
gibt mir einedate: illegal time format