シェルスクリプトで日本時間のYYYYMMDDを返す

実行環境に依存せずに、任意のタイムゾーンでの「今日の YYYYMMDD」を取得したい。

# 1. 今日の UNIX時刻(=UTCでの経過時間(秒)) を取得
unix_today=$(date +'%s')

# 2. タイムゾーンをズラす(+9:00 を秒に変換している)
unix_today=$((unix_today+32400))

# 3. YYYYMMDD に変換
jst_ymd_today=$(date '+%Y%m%d' --date "@$unix_today")

# 出力
echo $jst_ymd_today

出力

20190327

もっと短くかけないもんですかねえ。

追記

コメントで教えてもらいました。

# JST で今日の YYYYMMDD を得る
jst_ymd_today=$(TZ=UTC-9 date '+%Y%m%d')

# 出力
echo $jst_ymd_today