シェルスクリプト変数に日付スタンプを代入する方法

Ubuntuのシェルスクリプトで20xx1231みたいな日付スタンプを変数に代入する方法

hensuu=$(date '+%Y%m%d')

例:

timestamp=$(date +"%Y%m%d_%H%M%S")

以下は、シェルスクリプトで使える日付スタンプのパターン一覧です。dateコマンドを使って、さまざまな書式や相対日付(翌日、前日、翌月など)を取得できます。


基本形式(今日)

# 今日の日付(YYYYMMDD)
TODAY=$(date '+%Y%m%d')       # 20250626

# 今日の日付(YYYY-MM-DD)
TODAY_DASH=$(date '+%Y-%m-%d')  # 2025-06-26

# 今日の日付(YYYY年MM月DD日)
TODAY_JP=$(date '+%Y年%m月%d日')  # 2025年06月26日

相対日付(前日・翌日・前月・翌月など)

# 明日(翌日)
TOMORROW=$(date -d '1 day' '+%Y%m%d')  # 20250627

# 昨日(前日)
YESTERDAY=$(date -d 'yesterday' '+%Y%m%d')  # 20250625

# 来月の同日
NEXT_MONTH=$(date -d 'next month' '+%Y%m%d')  # 20250726

# 先月の同日
LAST_MONTH=$(date -d 'last month' '+%Y%m%d')  # 20250526

# 来年の今日
NEXT_YEAR=$(date -d 'next year' '+%Y%m%d')  # 20260626

# 去年の今日
LAST_YEAR=$(date -d 'last year' '+%Y%m%d')  # 20240626

月・日・曜日だけを取り出す

# 月(06)
MONTH=$(date '+%m')

# 日(26)
DAY=$(date '+%d')

# 曜日(日本語)
WEEKDAY_JP=$(date '+%A')  # Wednesday(ロケール次第で英語)

# 曜日(数字:0=日曜)
WEEKDAY_NUM=$(date '+%w')  # 3

時刻込み

# 時刻(24時間)
TIME=$(date '+%H:%M:%S')  # 14:30:00

# 日付と時刻(YYYY-MM-DD HH:MM:SS)
DATETIME=$(date '+%Y-%m-%d %H:%M:%S')

ファイル名などで使いやすいフォーマット

# タイムスタンプ(ファイル用)
STAMP=$(date '+%Y%m%d_%H%M%S')  # 20250626_143005

# ログファイル名などに
LOGFILE="log_$(date '+%Y%m%d').txt"

特殊・実用例

# 月末の日付を取得
MONTH_END=$(date -d "$(date +%Y-%m-1) +1 month -1 day" '+%Y%m%d')

# 月初を取得
MONTH_BEGIN=$(date -d "$(date +%Y-%m-01)" '+%Y%m%d')

date -d の相対指定例一覧

指定 意味
-d 'yesterday' 昨日
-d 'tomorrow' 明日
-d 'next week' 来週
-d 'last week' 先週
-d 'next month' 来月
-d 'last month' 先月
-d '2 days ago' 2日前
-d '+2 days' 2日後
-d '+1 year' 1年後

とりあえずこんなところかな!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする