it-swarm.com.de

Datum im Format JJJJ-MM-DD im Shell-Skript

Ich habe versucht, $(date) in meinem Bash-Shell-Skript zu verwenden, jedoch möchte ich das Datum im Format JJJJ-MM-DD haben. Wie bekomme ich das?

896
Kapsh

In Bash: 

year-month-day von date erhalten

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

Jahr-Monat-Tag Stunde: Minute: Sekunde von date

DATE=`date '+%Y-%m-%d %H:%M:%S'`

Andere verfügbare Datumsformate können auf den Date-Manpages angesehen werden :

man date
1541
Philip Fourie

Versuchen Sie: $(date +%F)

283
kwatford

Sie können so etwas tun:

$ date +'%Y-%m-%d'
68
lutz

Sie suchen nach ISO 8601 Standard-Datumsformat, wenn Sie also GNU Datum (oder einen Datums-Befehl moderner als 1988) haben, tun Sie einfach: $(date -I)

34
Medievalist
date -d '1 hour ago' '+%Y-%m-%d'

Die Ausgabe wäre 2015-06-14.

17
xu2mao
$(date +%F_%H-%M-%S)

kann verwendet werden, um Doppelpunkte (:) dazwischen zu entfernen

ausgabe

2018-06-20_09-55-58
10
ahmettolga

Bei der letzten Version von Bash (Version ≥ 4.2) können Sie die eingebaute Variable printf mit dem Formatmodifizierer %(strftime_format)T verwenden:

$ 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
6
wjandrea

wenn Sie möchten, dass das Jahr in zwei Formaten vorliegt, z. B. 17 anstelle von 2017, gehen Sie wie folgt vor:

DATE=`date +%d-%m-%y`
5
Crt
#!/bin/bash -e

x='2018-01-18 10:00:00'
a=$(date -d "$x")
b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S")
c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S")
#date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S"

echo Entered Date is $x
echo Second Date is $b
echo Third Date is $c

Hier wird x als Beispieldatum verwendet. In diesem Beispiel werden sowohl die Formatierung der Daten als auch das Erhalten von Datumsangaben 10 Minuten über dem aktuellen Datum angezeigt.

4
ankitbaldua

Immer wenn ich eine solche Aufgabe habe, muss ich zurückfallen 

$ man strftime

um mich an alle Möglichkeiten zu erinnern. 

4
arp

Ich verwende die folgende Formulierung:

TODAY=`date -I`
echo $TODAY

In der Manpage zu date gibt es eine Reihe weiterer nützlicher Optionen:

man date
2
Luís de Sousa

Sie können das Datum als Umgebungsvariable festlegen und später verwenden

setenv DATE `date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"

oder 

DATE =`date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"
0
Farid Haq

Ich verwende $ (Datum + "% Y-% m-% d") oder $ (Datum + "% Y-% m-% d% T") mit Zeit und Stunden.

0
Miguel