日付変数を使用しますが、書式を指定してください。

日付変数を使用しますが、書式を指定してください。

シェルスクリプトには次の変数があります。
datestamp=$(date '+%Y-%m-%d_T%H-%M-%S')
datestamp_pretty=$(date '+%m/%d/%Y at %I:%M:%S %p')

1つ目は出力ファイル名の一部として使用され、2つ目はファイルの内容内で読みやすい日付と時刻を表示するために使用されます。個別に作成されるため、秒が若干ずれる場合があります。単一の日付変数を生成してから、2つの異なる方法でフォーマットする方法はありますか?それでは、これはどのように達成されますか?

ベストアンサー1

GNUを使用している場合、これは非常に簡単ですdate

まず、で最も一般的な時間形式を取得しますdate。私はエポックの時間を取得することを選択しました。

epoch=$(date +%s)

次に、所望の回数に関係なく、所望の形式にエポックを変換する。

datestamp=$(date -d @$epoch '+%Y-%m-%d_T%H-%M-%S')
datestamp_pretty=$(date -d @$epoch '+%m/%d/%Y at %I:%M:%S %p')

これは常に最初のキャプチャ時間を示す必要があります$epoch

GNUがなければ、date時代を人間の日付に変換する別の方法が必要です。

おすすめ記事