日付文字列→UNIXタイムスタンプ

macOSで"2024-06-01 12:34:56"のような日付文字列をUNIXタイムスタンプに変換するには、dateコマンドを使用して以下のように実行する。

str="2024-06-01 12:34:56"
date -j -f "%Y-%m-%d %H:%M:%S" $str "+%s"

-fオプションで日付文字列のフォーマットを指定し、"+%s"を指定するとUNIXタイムスタンプ形式(秒単位)で出力する。
"%Y-%m-%d %H:%M:%S"の部分は変換したい日付文字列のフォーマットに合わせて変更する。
-jオプションでシステムの日時を変更しないようにする。-fオプションのみを使用するとシステムの日時を変更しようとするため、-jオプションを併用する必要がある。

上記オプションはBSD版のdateコマンド用であり、Linux(GNU版)では異なる。

UNIXタイムスタンプ→日付文字列

UNIXタイムスタンプを日付文字列に変換するには、以下のように実行する。

timestamp=1717263296
date -r $timestamp "+%Y-%m-%d %H:%M:%S"

-rオプションでUNIXタイムスタンプを指定し、"+%Y-%m-%d %H:%M:%S"で出力フォーマットを指定する。
出力フォーマットは必要に応じて変更する。