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年後 |
とりあえずこんなところかな!