dateコマンドで日時を確認・設定する方法

当ページのリンクには広告が含まれています。

## はじめに
シェルスクリプトを書いていれば必ずお世話になる`date`コマンドは、現在時刻の表示だけでなく、フォーマット指定、相対日時の計算、UNIXタイムスタンプとの相互変換まで幅広くこなす万能ツールです。バックアップファイル名に日付を埋め込んだり、N日前の日付を計算したり、ログのタイムスタンプを変換したり、さまざまな場面で利用されます。

GNU版のdate(多くのLinuxディストリビューションで採用)は、`-d`オプションで自然言語に近い日時指定が可能で、macOS(BSD版)とは引数が異なる点にだけ注意が必要です。

本記事では、dateコマンドの実用テクニックを場面別に紹介します。

## 症状・背景
– バックアップファイル名に日付を入れてユニーク化したい
–  30日前の日付」を自動計算したい
– ログのUNIXタイムを人間可読な時刻に変換したい
– スクリプト内で年月日を組み立てたい

[図解画像をここに表示]

## 手順・設定方法
### ステップ1: 基本表示とフォーマット指定
よく使う書式を押さえます。

“`bash
# 現在時刻(ロケール依存)
date

# ISO 8601形式
date -Iseconds

# カスタムフォーマット
date “+%Y-%m-%d %H:%M:%S”

# ファイル名向けの日時
date “+%Y%m%d_%H%M%S”

# UTC表示
date -u
“`

### ステップ2: 相対日時の計算
`-d`で過去・未来の日付を取得します。

“`bash
# 昨日の日付
date -d “yesterday” +%Y-%m-%d

# 7日前
date -d “7 days ago” +%Y-%m-%d

# 1ヶ月後
date -d “1 month” +%Y-%m-%d

# 来週金曜日
date -d “next friday” +%Y-%m-%d

# 特定日からの相対
date -d “2026-01-01 +90 days” +%Y-%m-%d
“`

### ステップ3: UNIXタイムスタンプとの変換
ログ解析やAPI連携で頻出します。

“`bash
# 現在のUNIXタイム取得
date +%s

# UNIXタイム → 日時に変換
date -d @1715680800

# ISO日時 → UNIXタイム
date -d “2026-05-14 12:00:00″ +%s

# ナノ秒精度
date +%s.%N
“`

### ステップ4: シェルスクリプトでの活用
実用パターンを覚えておきます。

“`bash
# バックアップファイル名
backup_file=”db_$(date +%Y%m%d_%H%M%S).sql.gz”
mysqldump mydb | gzip > “$backup_file”

# ログにタイムスタンプを付与
echo “[$(date -Iseconds)] 処理開始” >> /var/log/myapp.log

# 古いファイルを削除(30日以上前)
find /backup -type f -mtime +30 -delete

# 経過時間の計測
start=$(date +%s)
sleep 3
echo “経過: $(($(date +%s) – start)) 秒”
“`

## 注意事項
– `date -s “…”`での時刻設定は手動設定であり、NTP有効時は推奨されない
– macOS(BSD)版のdateは`-d`の構文が異なる、`date -j`を使う必要がある
– ロケール依存の出力は環境によって変わる、スクリプトでは`LC_ALL=C`を指定
– タイムゾーンに注意、`TZ=UTC date`で一時的に切り替え可能

## まとめ
1. **基本書式**: `+%Y-%m-%d %H:%M:%S` 形式が定番
2. **相対日時**: `-d “N days ago”` で過去日を簡単に算出
3. **UNIXタイム**: `+%s` と `-d @TIMESTAMP` で相互変換
4. **ファイル名**: `$(date +%Y%m%d_%H%M%S)` でユニーク化
5. **スクリプト**: ログタイムスタンプや経過時間計測に活用

関連記事:
– [Linuxのタイムゾーン設定方法](/articles/linux-timezone-setup/)
– [cronで定時実行する基本](/articles/linux-cron-basics/)
– [シェルスクリプトの基本構文](/articles/linux-shell-scripting-basics/)

▼ 実践ガイド

【2026年】ネット証券口座の選び方とおすすめ比較 →

用語の意味がわかったら、実際の口座選びのポイントもチェックしてみてください。

※本記事に掲載している情報は、中立的な立場からの情報提供を目的としたものです。掲載している商品・サービスの購入や利用を推奨・強制するものではありません。投資には価格変動リスクが伴い、元本割れが生じる可能性があります。過去の運用実績やシュミレーション結果は、将来の運用成果を保証するものではありません。また、情報の正確性・最新性には十分配慮しておりますが、 内容の完全性や将来の結果を保証するものではありません。最終的な投資判断は、読者ご自身の判断と責任において行っていただくようお願いいたします。本記事の情報を利用したことによって生じたいかなる損害についても、当サイトでは一切の責任を負いかねますので、あらかじめご了承ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

マネジ局長は、「お金の大辞典」全体を統括する監修者です。

編集者であるマネ辞くんが収集・整理した金融・投資・税制データについて、制度の前提条件やリスク、誤解が生じやすい点がないかをチェックし、「この情報をどう受け取るべきか」という判断軸を補足します。

特定の商品やサービスをすすめる役割ではなく、読者が冷静に考えるためのブレーキ役として設計されています。

お金の判断は急がず、理解してから選ぶ。
それがマネ辞局長の基本スタンスです。

目次