【必見】dateコマンドの使い方|フォーマットやオプションの一覧付

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年5月)

✔このような方へ向けて書かれた記事となります

「Dateコマンドで何ができるのだろうか?」

「Dateコマンドの使い方が知りたい」

「Dateコマンドの実例がいろいろなパターンで見てみたい」

✔当記事を通じてお伝えすること

  • Dateコマンドの基本
  • Dateコマンドの書き方・オプション
  • Dateコマンドの具体例

当記事では、Dateコマンドについて、その基本はもちろん、具体例付きでさまざまな使い方をご覧いただけます。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Dateコマンドの基礎知識5選

dateコマンドの基本から見ていきましょう。

まずはこちらを覚えれば、すぐに使えるようになります。

  • dateコマンドとは?
  • dateコマンドの重要性
  • dateコマンドの構文
  • オプションと引数の概要
  • フォーマット指定子の説明

dateコマンドとは?

dateコマンドは、UNIX/Linuxシステムで日付や時刻を表示、設定するためのコマンド

このコマンドを使用することで、以下のようなことができます。

  • 現在の日時を確認
  • 特定の日付や時刻を表示
  • システムの時刻を調整
  • シェルスクリプトやタイムスタンプの操作

dateコマンドは、さまざまなシーンで活用できる便利なコマンドです。

dateコマンドの重要性

日付や時刻は、さまざまな場面におけるコンピュータシステムで重要な役割を果たします。

  • ファイルのタイムスタンプ
  • ログの生成
  • スケジュール管理

dateコマンドを理解し使いこなすことで、効率的にこれらのタスクをこなせます。

日付計算や時刻の変換など、日常的に必要とされる機能も備わっているのです。

dateコマンドの構文

dateコマンドの基本的な構文は以下の通りです。

date [オプション] [+フォーマット]

オプションとフォーマットは省略可能です。

オプションを使えば、特定の日付や時刻を指定したり、システムの時刻を変更したり、細かい指示が可能。

フォーマットは、出力される日付や時刻の形式をカスタマイズするために使用します。

オプションと引数の概要

いくつかの主要なオプションを紹介します。

  • -u: UTC (協定世界時) を使用して日時を表示
  • -d: 指定した日付・時刻で表示(引数:日付・時刻文字列)
  • -s:システム時刻を設定(引数:新しい日付・時刻文字列)
  • -R: RFC 5322形式で表示

この形式は、メールヘッダなどで使用されることが多いです。

オプションの一覧は、実例付きで後述しています。

フォーマット指定子の説明

フォーマット指定子は、日付や時刻の表示形式を指定するために使用します。

例えば以下のとおり。

  • %Yは年
  • %mは月
  • %dは日
  • %Hは時
  • %Mは分
  • %Sは秒

これらの指定子を組み合わせることで、カスタムした日付・時刻形式を作成できます。

フォーマット指定子一覧は、実例付きでこちらで紹介しています。

dateコマンドの基本的な使い方

具体的な使い方を見ていきましょう。

まずはこちらの4つを覚えれば、基本的な使い方はOKです。

  • 現在日時の表示
  • 特定の日付・時刻の表示
  • フォーマットを指定して日付・時刻を表示
  • システム時刻の設定

現在日時の表示

現在の日時を表示するには、オプションなしでdateコマンドを実行します。

$ date

Mon Apr 28 14:30:45 JST 2023

この例では、現在の日時が表示されています。

特定の日付・時刻の表示

特定の日付・時刻を表示するには、-dオプションと日付・時刻文字列を指定します。

$ date -d '2023-04-28 12:34:56'
Fri Apr 28 12:34:56 JST 2023

この例では、指定した日付・時刻が表示されています。

フォーマットを指定して日付・時刻を表示

フォーマットを指定して日付・時刻を表示するには、+記号とフォーマット指定子を使用します。

$ date '+%Y-%m-%d %H:%M:%S'
2023-04-28 14:30:45

この例では、指定したフォーマットで現在の日時が表示されています。

システム時刻の設定

システム時刻を設定するには、-sオプションと新しい日付・時刻文字列を指定します。

ただし、この操作には管理者権限が必要です。

$ sudo date -s '2023-04-28 12:34:56'
Fri Apr 28 12:34:56 JST 2023

この例では、システム時刻が指定した日時に設定されました。

管理者権限でおこなわなければならないものには、sudoをつけます。

こちらの例は、実行する際は慎重におこないましょう。

dateコマンドのオプション一覧

dateコマンドのオプション一覧をご覧ください。

オプションは上記のものだけではありません。

オプション名説明実例
-d特定の日付・時刻の表示date -d ‘2023-04-28 12:34:56’
-sシステム時刻の設定 (管理者権限が必要)sudo date -s ‘2023-04-28 12:34:56’
-rファイルのタイムスタンプ表示date -r file.txt
-uUTCでの日付・時刻表示date -u
-I日付をISO 8601形式で表示date -I
–iso-8601日付や時刻をISO 8601形式で表示 (引数で詳細指定可能)date –iso-8601=minutes
-R日付・時刻をRFC 5322形式で表示date -R
–helpdateコマンドのヘルプ情報表示date –help
–versiondateコマンドのバージョン情報表示date –version

フォーマット指定子一覧

フォーマット指定子も一覧にしました。

日付と文字列を相互に変換する際などに活用できます。

フォーマット指定子説明実例
%a曜日を短縮形で表示date +%a (例: Mon)
%A曜日を完全な形で表示date +%A (例: Monday)
%b月を短縮形で表示date +%b (例: Jan)
%B月を完全な形で表示date +%B (例: January)
%c日付と時刻をロケールに従って表示date +%c (例: Mon Sep 6 23:12:48 2021)
%C世紀 (年の上2桁)date +%C (例: 20)
%d日付を2桁で表示 (01-31)date +%d (例: 03)
%D日付をMM/DD/YY形式で表示date +%D (例: 09/06/21)
%e日付を1桁または2桁で表示date +%e (例: 3)
%F日付をYYYY-MM-DD形式で表示date +%F (例: 2021-09-06)
%g年を下2桁で表示 (ISO 8601週番号システム)date +%g (例: 21)
%G年を4桁で表示 (ISO 8601週番号システム)date +%G (例: 2021)
%h%bと同じ (月を短縮形で表示)date +%h

dateコマンドの応用例

dateコマンドの応用例をご覧ください。

ここまで理解できれば、次のステップへ進めます。

  • ファイルのタイムスタンプ操作
  • 日付計算と日付比較
  • 日付の変換と検証
  • シェルスクリプトでの活用

ファイルのタイムスタンプ操作

dateコマンドを使ってファイルのタイムスタンプを表示・変更できます。

以下は、ファイルの最終更新日時を表示する例です。

$ date -r file.txt '+%Y-%m-%d %H:%M:%S'
2023-04-27 10:15:32

この例では、file.txtの最終更新日時が表示されています。

また、次の例では、ファイルのタイムスタンプを指定した日時に変更します。

$ touch -t 202304281234.56 file.txt

file.txtのタイムスタンプが2023年4月28日12時34分56秒に設定されました。

日付計算と日付比較

dateコマンドを使って、日付の加算・減算や日付の比較をおこなえます。

例えば1週間後の日付を表示する方法は、こちらです。

$ date -d '1 week' '+%Y-%m-%d'
2023-05-05

1週間後の日付が表示されています。

日付の変換と検証

日付文字列を異なるフォーマットに変換。

例えば、次のようにして、日付をISO 8601形式に変換できます。

$ date -d '2023/04/28' -I
2023-04-28

入力された日付文字列が正しいかどうかを検証できます。

シェルスクリプトでの活用

dateコマンドはシェルスクリプトで日付や時刻を扱う際にも役立ちます。

例えば、バックアップファイル名に日付を付与するシェルスクリプトを作成することができるでしょう。

注意点とトラブルシューティング

dateコマンドを使用する際の注意点や問題点を見ていきましょう。

トラブルが起きたときも冷静に、状況を見て判断してください。

  • 日付フォーマットの誤りと対処法
  • 無効なオプションや引数の使用と対処法
  • 権限不足によるエラーと対処法
  • 日付計算の注意点
  • シェルスクリプトでの実装ポイント

日付フォーマットの誤りと対処法

日付フォーマットが正しくない場合、dateコマンドはエラーを出力します。

このような場合は、入力された日付フォーマットを確認し、正しいフォーマットに修正してください。

無効なオプションや引数の使用と対処法

無効なオプションや引数が指定された場合も、dateコマンドはエラーを出力します。

適切なオプションや引数を指定するように注意してください。

権限不足によるエラーと対処法

システム時刻の変更など、管理者権限が必要な操作をおこなおうとすると、権限不足のエラーが発生します。

sudoコマンドを使用して管理者権限で実行すれば解決可能です。

日付計算の注意点

日付計算を行う際には、特に閏年や月末日の処理に注意が必要です。

また、タイムゾーンの違いも考慮しましょう。

dateコマンドを使うことで、これらの問題を自動的に処理できるでしょう。

シェルスクリプトでの実装ポイント

シェルスクリプトでdateコマンドを使用する際は、引数や出力結果を正確に扱うことが重要です。

変数や引数を使って柔軟な処理を行い、エラーハンドリングも適切に実装してください。

まとめ

この記事では、dateコマンドの基本から応用までを網羅しました。

これを機に、実際にdateコマンドを使って日付・時刻操作をおこなってみてください

シェルスクリプトや他のコマンドと組み合わせることで、さらに効果的な利用が可能になるでしょう。

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