[英]How to convert DATE to UNIX TIMESTAMP in shell script on MacOS
在 Linux 上,您可以通過以下方式將“2010-10-02”之類的日期轉換為 shell 腳本中的 unix 時間戳
date -d "2010-10-02" "+%s"
由於 Mac OS 沒有等效的-d日期。 您如何在 shell 腳本中將日期轉換為 unix 時間戳。
date +%s
這在 OS X Lion 上對我來說很好用。
OSX 上的man date
有這個例子
date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
我認為這可以滿足您的需求。
您可以將其用於特定日期
date -j -f "%a %b %d %T %Z %Y" "Tue Sep 28 19:35:15 EDT 2010" "+%s"
或者使用您想要的任何格式。
date -j -f "%Y-%m-%d" "2010-10-02" "+%s"
我在 Mac OSX 上使用了以下內容。
currDate=`date +%Y%m%d`
epochDate=$(date -j -f "%Y%m%d" "${currDate}" "+%s")
或者,您可以像這樣安裝 GNU date:
brew install coreutils
alias date="/usr/local/bin/gdate"
date +%s
1547838127說 Mac 必須“與眾不同”的評論只是表明評論者對 UNIX 的歷史一無所知。 macOS 基於 BSD UNIX,它比 Linux 古老得多。 Linux 本質上是其他 UNIX 系統的副本,Linux 決定通過采用 GNU 工具而不是 BSD 工具來“與眾不同”。 GNU 工具對用戶更友好,但它們通常不會在任何 *BSD 系統上找到(只是它的方式)。
真的,如果您將大部分時間都花在 Linux 上,但擁有 Mac 桌面,那么您可能想讓 Mac 像 Linux 一樣工作。 嘗試記住兩組不同的選項或為 mac 的 BSD 版本的 Bash 編寫腳本是沒有意義的,除非您正在編寫要在 BSD 和 GNU/Linux shell 上運行的實用程序。
date -j -f "%Y-%m-%d %H:%M:%S" "2020-04-07 00:00:00" "+%s"
當沒有%H:%M:%S
和00:00:00
時,它將打印動態00:00:00
。
我編寫了一組腳本,為 BSD 和 GNU 版本的date
提供了統一的接口。
Follow 命令將輸出日期2010-10-02
的紀元秒數,它適用於 BSD 和 GNU 版本的date
。
$ xsh /date/convert "2010-10-02" "+%s"
1286020263
它相當於帶有 GNU 版本date
的命令:
date -d "2010-10-02" "+%s"
以及帶有date
BSD 版本的命令:
date -j -f "%F" 2010-10-02 "+%s"
可以在以下位置找到腳本:
它是名為xsh-lib/core
的庫的一部分。 要使用它們,您需要 repos xsh
和xsh-lib/core
,我在下面列出了它們:
要將 UTC 中的日期轉換為 Unix 時間戳:
date -ju -f "%F %T" "2021-03-08 14:56:21" "+%s"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.