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


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


757
2017-09-09 19:06


Ursprung


Antworten:


In Bash:

bekommen Jahr Monat Tag von date

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

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

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

Andere verfügbare Datumsformate können von der Datum Man Seiten:

man date

1303
2017-09-09 19:08



Versuchen: $(date +%F)


256
2017-09-09 19:11



Sie können so etwas tun:

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

57
2017-09-09 19:08



Du schaust nach ISO 8601 Standard-Datumsformat, wenn Sie also ein GNU-Datum haben (oder einen Datumsbefehl, der moderner als 1988 ist): $(date -I)


29
2018-06-19 15:49



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

Die Ausgabe wäre 2015-06-14.


15
2017-09-07 08:05



Mit der letzten Bash (Version ≥ 4.2) können Sie den Built-in verwenden 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

5
2017-11-10 05:15



Wenn Sie das Jahr in einem Format mit zwei Zahlen wie 17 anstatt 2017 möchten, gehen Sie folgendermaßen vor:

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

4
2018-06-02 18:55