【保存版】Linuxで日時を自在にフォーマットする方法|dateコマンド徹底解説

Linux

Linuxで作業していると、「現在の日付や時刻をログに出したい」「ファイル名にタイムスタンプを付けたい」といった場面が頻繁にありますよね。

そんなときに活躍するのが、シンプルかつ強力なdateコマンドです。

ただし、書式指定(フォーマット)が意外と複雑で覚えづらいのも事実…。今回は、よく使う日時フォーマットや具体例を中心に、初心者でもすぐに使える形でご紹介します。


スポンサーリンク

現在の日時を確認する基本コマンド

まずは最も基本的な使い方から見てみましょう。

date

出力例:

Thu May 22 18:45:00 JST 2025

これは「ロケール」によって形式が異なります。思い通りの形式に整えるには、**+書式文字列**を使いましょう。


dateコマンドのフォーマット構文

基本的な構文はこちらです。

date +"書式指定"

例:

date +"%Y-%m-%d %H:%M:%S"

出力:

2025-05-22 18:45:00

この書式指定を覚えることで、自由に日時をフォーマットできるようになります。


よく使う日時フォーマット一覧

書式指定子の組み合わせで、様々な表示ができます。

書式意味出力例
%Y年(4桁)2025
%m月(2桁)05
%d日(2桁)22
%H時(24時間制)18
%M45
%S00
%y年(下2桁)25
%b月(省略英語)May
%A曜日(全表記)Thursday

この表を参考にすれば、必要な形式がすぐに作れますね。


よくある用途別のサンプルコマンド

実際の業務でよく使うパターンを紹介します。

ログファイル用のタイムスタンプ

date +"%Y%m%d_%H%M%S"
# 出力例:20250522_184500

日本語で年月日表示

date +"%Y年%m月%d日 %H時%M分"
# 出力例:2025年05月22日 18時45分

ファイル名に使う(スクリプト内で)

FILENAME="backup_$(date +'%Y%m%d_%H%M%S').tar.gz"

このようにして、ファイル名に日時を組み込むことができます。便利ですね。


過去・未来の日時を表示する

dateコマンドは、相対時間の指定も可能なんです。

明日の日時

date -d "next day" +"%Y-%m-%d"

1時間前

date -d "1 hour ago" +"%H:%M:%S"

この機能を使えば、過去や未来の日時も簡単に計算できます。


UTC表示やタイムゾーンを変更する

タイムゾーンの切り替えも簡単です。

TZ=UTC date +"%Y-%m-%d %H:%M:%S"

他の例:TZ=Asia/Tokyoなども使えます。国際的なプロジェクトでは特に重要な機能ですね。


まとめ:dateコマンドを使いこなせばスクリプトもプロ並みに!

Linuxでは、ログ出力やファイル管理、スケジューラ処理において日時のフォーマットは非常に重要です。

dateコマンドをマスターすれば、見やすく整った出力が簡単に実現できるようになります。

ポイントまとめ

  • dateコマンドで現在日時を取得&整形可能
  • +フォーマット文字列で好きな表示形式に変えられる
  • ログ用、ファイル名用、日本語表示など多用途に活用可能
  • -dオプションで相対時間も取得できる
  • TZでタイムゾーン指定も柔軟に対応

コメント

タイトルとURLをコピーしました