web-dev-qa-db-fra.com

Comment convertir DATE en UNIX TIMESTAMP dans un script shell sous MacOS

Sous Linux, vous pouvez convertir une date telle que "2010-10-02" en un horodatage Unix dans un script Shell en

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

Comme Mac OS n’a pas l’équivalent -d pour date . Comment procédez-vous pour convertir une date en un horodatage Unix dans un script Shell?.

67
David Young

man date sur OSX a cet exemple

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

Ce que je pense fait ce que vous voulez. 

Vous pouvez l'utiliser pour une date spécifique

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

Ou utilisez le format que vous voulez.

28
Lou Franco
date +%s

Cela fonctionne bien pour moi sur OS X Lion.

126
JRiggles

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

15
user405725

J'ai utilisé ce qui suit sur Mac OSX. 

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

Vous pouvez également installer la date GNU] comme suit:

  1. installer Homebrew: https://brew.sh/
  2. brew install coreutils
  3. ajouter à votre bash_profile: alias date="/usr/local/bin/gdate"
  4. date +%s 1547838127

Le Mac est "différent" car OSX est basé sur BSD. Les utilitaires BSD ont tendance à être mis à jour de manière conservatrice, tandis que les outils GNU offrent davantage d'améliorations.

Vraiment, si vous passez le plus clair de votre temps sous Linux, mais que vous avez un bureau Mac, vous voudrez probablement que le Mac fonctionne comme Linux. Voir aussi: Docker. Il ne sert à rien d'essayer de retenir deux ensembles d'options différents.

0
Crossfit_and_Beer