私のオペレーティングシステムで
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
答え1
現在の時間をエポック以降の秒数として指定するには、次の手順を実行します。
x=$(date +%s)
zsh
将来のzmodload zsh/datetime
バージョンまたは最新バージョンを使用すると、bash
この操作も実行できますx=$EPOCHSECONDS
。
x=$(date -u)
ユーザーのロケールとシステムの違いに応じて、Tue 01 Nov 2022 10:58:08 AM UTC
または同じ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
幸運です。これは、オプションによって認識される日付形式の1つであるためです-d
。
だから:
epoch=$(date -d "$x" +%s)
そこで働きます。あなたのdate
コマンドはGNUコマンドではないようですが、GNUは次のようにdate
使用できます。gdate
/opt/gnu/bin/date