Ruby Date#strftimeメソッドの使い方

この記事のポイント

Date#strftimeメソッドは、プログラミング初心者でも簡単に習得できる強力な日付フォーマット機能です。

  • 日付オブジェクトを自由自在に文字列形式に変換する基本機能
  • 豊富なフォーマット指定子で多様な表示形式を実現する柔軟性
  • 実際の開発現場で頻繁に活用される実用的なコード実装手法

これらのポイントを理解することで、日付処理に関する課題を効率的に解決できるようになります。

目次

Date#strftimeメソッドとは?

Date#strftimeメソッドは、日付や時刻を表すDateオブジェクトを、指定した書式に従って文字列に変換するための重要な機能です。

strftimeという名前は「string format time」の略語で、C言語由来の関数名です。このメソッドを使用することで、2024年1月15日のような日付データを「2024-01-15」といった形式の文字列に自在に変換できます。

フォーマット指定子という特殊な記号を組み合わせることで、年、月、日、時、分、秒、曜日などの要素を思い通りに配置し、実際のWebアプリケーション開発において必要とされる多様な表示要件に対応することが可能になります。

【関連】
Rubyをもっと詳しく学ぶならpaizaラーニング

基本構文

Date#strftimeメソッドの基本的な使用法は、Dateオブジェクトに対してstrftimeメソッドを呼び出し、引数としてフォーマット指定文字列を渡す形式です。最も重要なフォーマット指定子として、%Yは西暦4桁、%mは月の数字、%dは日の数字を表します。

例えば、現在の日付を標準的なISO 8601形式で表示する場合や、日本語的な表現で出力する場合の基本パターンをマスターすることで、より複雑な日付フォーマットも簡単に実現できるようになります。

require 'date' current_date = Date.today puts current_date.strftime("%Y-%m-%d")

出力結果(例)

2025-01-15

※このページ内のコードの出力結果の一部で、実行した日により変動するものがあります。

require 'date' my_date = Date.new(2025, 3, 10) puts my_date.strftime("%Y年%m月%d日")

出力結果

2025年03月10日

実用例

Date#strftimeメソッドの真価は、実際のプログラム開発における具体的な使用場面で発揮されます。ここでは日常的な開発作業で頻繁に遭遇するシナリオを想定し、それぞれに対応する実践的なコード例を紹介します。

これらのサンプルコードは、Webアプリケーション、業務システム、データ処理など、幅広い用途で活用できる汎用性の高い実装パターンです。各例では動物名を使った親しみやすい変数名や出力例を採用し、初心者の方でも理解しやすいよう配慮しています。

実際のコードを実行しながら学習することで、Date#strftimeメソッドの柔軟性と実用性を体感していただけるでしょう。

基本的な日付表示

最もシンプルな日付表示の例です。年月日を数字で区切り文字を使って表現します。

require 'date' cat_birthday = Date.new(2025, 5, 20) puts cat_birthday.strftime("%Y/%m/%d")

出力結果

2025/05/20

時刻を含む詳細表示

日付に加えて時刻情報も表示する場合の例です。DateTimeクラスを使用します。
※RubyではDateTimeクラスが非推奨、Timeクラスが推奨となっています。
 本記事ではDateクラスに焦点を当てて解説します。

require 'date' dog_walk_time = DateTime.new(2025, 1, 15, 14, 30, 0) puts dog_walk_time.strftime("%Y年%m月%d日 %H時%M分")

出力結果

2024年01月15日 14時30分

カスタム形式での日付表示

独自の区切り文字や表記方法を使用したカスタム形式での日付表示の例です。

require 'date' rabbit_checkup = Date.new(2025, 8, 3) puts rabbit_checkup.strftime("%d-%m-%Y")

出力結果

03-08-2025

曜日表示を含むコード例

曜日情報を含む日付表示の例です。%Aで完全な曜日名、%aで省略形を表示できます。

require 'date' bird_feeding = Date.new(2025, 6, 15) puts bird_feeding.strftime("%Y年%m月%d日(%A)")

出力結果

2025年06月15日(Sunday)

月名表示

数字ではなく月名で表示する例です。%Bで完全な月名、%bで省略形を使用できます。

require 'date' fish_tank_cleaning = Date.new(2025, 9, 12) puts fish_tank_cleaning.strftime("%B %d, %Y")

出力結果

September 12, 2025

年月日の組み合わせ表示

和暦風の表現や特殊な区切り文字を使った日付表示の例です。

require 'date' hamster_birthday = Date.new(2025, 12, 25) puts hamster_birthday.strftime("西暦%Y年 第%m月 %d日目")

出力結果

西暦2025年 第12月 25日目

区切り文字をカスタマイズしたコード例

ドットやアンダーバーなど、さまざまな区切り文字を使用した日付表示の例です。

require 'date' turtle_habitat_check = Date.new(2025, 4, 8) puts turtle_habitat_check.strftime("%Y.%m.%d")

出力結果

2025.04.08

12時間形式での時刻表示

AM・PMを含む12時間形式での時刻表示の例です。%pでAM/PMを表示できます。

require 'date' lion_feeding_time = DateTime.new(2025, 7, 20, 15, 45, 0) puts lion_feeding_time.strftime("%Y/%m/%d %I:%M %p")

出力結果

2025/07/20 03:45 PM

まとめ

Date#strftimeメソッドは、日付と時刻の文字列変換における強力で柔軟な機能を提供する重要なツールです。基本的なフォーマット指定子の組み合わせから、複雑なカスタム形式まで、多様な表示要件に対応できる汎用性を持っています。

Date#strftimeの活躍する場面

  • Webアプリケーションでのユーザー向け日付表示機能
  • ログファイルやレポート生成における時刻情報の整形処理
  • データベースから取得した日付データの画面表示用変換

これらの場面において、strftimeメソッドは開発効率の向上とユーザビリティの改善に大きく貢献します。

重要なポイント

  • フォーマット指定子の正確な記述が適切な出力の基本条件
  • 国際化対応を考慮した柔軟な表示形式設計の重要性
  • パフォーマンスを意識した効率的なコード実装手法の習得

これらのポイントを押さえることで、プログラム開発において頻繁に必要となる日付処理を効率的に実現し、ユーザーインターフェースの向上やデータの可読性向上に大きく貢献します。適切な理解と活用により、より洗練されたRubyプログラムの作成が可能になるでしょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. Rubyのリファレンス記事一覧
  4. Ruby Date#strftimeメソッドの使い方