Unter Linux können Sie ein Datum wie "2010-10-02" in einen Unix-Zeitstempel im Shell-Skript von konvertieren
date -d "2010-10-02" "+%s"
Da Mac OS nicht das Äquivalent -d für Datum hat . Wie konvertieren Sie ein Datum in einen Unix-Zeitstempel in einem Shell-Skript?
date +%Y%m%d
Datum -j -f "% a% b% d% T% Z% Y" "$ {currDate}" "+% s"PDT
dem obigen Befehl so, dass das Ändern mitEDT
mirPDT
funktioniert hat.Dies funktioniert gut für mich unter OS X Lion.
quelle
date +%s
verwendet nur das aktuelle Datum.date -j -f "%Y-%m-%d" "2010-10-02" "+%s"
quelle
Unter Mac OSX habe ich Folgendes verwendet.
currDate=`date +%Y%m%d` epochDate=$(date -j -f "%Y%m%d" "${currDate}" "+%s")
quelle
Alternativ können Sie das GNU-Datum folgendermaßen installieren:
brew install coreutils
alias date="/usr/local/bin/gdate"
date +%s
1547838127Kommentare, die besagen, dass Mac "anders" sein muss, zeigen einfach, dass der Kommentator die Geschichte von UNIX nicht kennt. macOS basiert auf BSD UNIX, das viel älter als Linux ist. Linux war im Wesentlichen eine Kopie anderer UNIX-Systeme, und Linux entschied sich, "anders" zu sein, indem es GNU-Tools anstelle von BSD-Tools verwendete. GNU-Tools sind benutzerfreundlicher, werden jedoch normalerweise auf keinem * BSD-System gefunden (so wie es ist).
Wenn Sie die meiste Zeit unter Linux verbringen, aber einen Mac-Desktop haben, möchten Sie wahrscheinlich , dass der Mac wie Linux funktioniert. Es macht keinen Sinn, sich zwei verschiedene Optionen oder Skripte für die BSD-Version von Bash des Mac zu merken, es sei denn, Sie schreiben ein Dienstprogramm, das Sie sowohl auf BSD- als auch auf GNU / Linux-Shells ausführen möchten.
quelle
date -j -f "%Y-%m-%d %H:%M:%S" "2020-04-07 00:00:00" "+%s"
Es werden die dynamischen Sekunden ohne
%H:%M:%S
und gedruckt00:00:00
.quelle