Timestamps

如何獲取時間變數的時間戳?

  • November 1, 2022

在我的作業系統中

date
Tue 01 Nov 2022 06:58:10 PM HKT

獲取unix時間戳

date +%s
1667300297

獲取UTC時間。

date -u
Tue 01 Nov 2022 10:58:08 AM UTC

如果我將變數分配為 UTC 時間

x=$(date -u)

那麼如何獲取變數的時間戳呢?

$x  +%s
bash: Tue: command not found

如果您希望目前時間作為紀元以來的秒數:

x=$(date +%s)

使用zshafter zmodload zsh/datetime,或者使用最新版本bash,您也可以這樣做x=$EPOCHSECONDS

x=$(date -u)儲存類似於Tue 01 Nov 2022 10:58:08 AM UTCor的東西,mar. 01 nov. 2022 12:05:48 UTC或者2022年 11月 01日 星期二 12:06:04 UTC取決於使用者的區域設置,系統之間的變化以及$x.

獲取該日期對應的紀元秒數將是困難的。

在 的情況下Tue 01 Nov 2022 10:58:08 AM UTC,如果您可以訪問 的 GNU 實現date,那麼您很幸運,因為這是它通過其-d選項辨識的日期格式之一。

所以:

epoch=$(date -d "$x" +%s)

將在那里工作。您的date命令似乎不是 GNU 的命令,但 GNUdate可能作為gdate/opt/gnu/bin/date

引用自:https://unix.stackexchange.com/questions/723225