it-swarm.com.de

Wie konvertiert man DATE in UNIX TIMESTAMP in einem Shell-Skript unter MacOS?

Unter Linux können Sie ein Datum wie "2010-10-02" in ein Unix-Zeitstempel im Shell-Skript von konvertieren

date -d "2010-10-02" "+%s"

Da Mac OS nicht das entsprechende -d für date hat. Wie gehen Sie vor, um ein Datum in einen Unix-Zeitstempel in einem Shell-Skript zu konvertieren.

67
David Young

man date unter OSX hat dieses Beispiel

date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"

Was ich denke macht was du willst. 

Sie können dies für ein bestimmtes Datum verwenden

date -j -f "%a %b %d %T %Z %Y" "Tue Sep 28 19:35:15 EDT 2010" "+%s"

Oder verwenden Sie ein beliebiges Format.

28
Lou Franco
date +%s

Dies funktioniert gut für mich unter OS X Lion.

126
JRiggles

date -j -f "%Y-%m-%d" "2010-10-02" "+%s"

15
user405725

Ich habe folgendes unter Mac OSX verwendet. 

currDate=`date +%Y%m%d`
epochDate=$(date -j -f "%Y%m%d" "${currDate}" "+%s")
2
smarisetti

Alternativ können Sie das Datum GNU wie folgt installieren:

  1. homebrew installieren: https://brew.sh/
  2. brew install coreutils
  3. füge zu deinem bash_profile hinzu: alias date="/usr/local/bin/gdate"
  4. date +%s 1547838127

Der Mac ist "anders", weil OSX auf BSD basiert. BSD-Hilfsprogramme werden tendenziell konservativ aktualisiert, während GNU -Tools weitere Verbesserungen aufweisen.

Wirklich, wenn Sie die meiste Zeit in Linux verbringen, aber einen Mac-Desktop haben, möchten Sie den Mac wahrscheinlich wie Linux arbeiten lassen. Siehe auch: Docker. Es macht keinen Sinn, sich an zwei verschiedene Optionen zu erinnern.

0