日付オブジェクトを指定したフォーマットで文字列に変換する

Date クラスのオブジェクトを作成したあと、指定したフォーマットを使って日付オブジェクトを文字列に変換することができます。ここでは Ruby で日付オブジェクトを指定したフォーマットで文字列に変換する方法について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 17 日更新)

指定したフォーマットで文字列に変換する

Date オブジェクトを作成したあと、任意のフォーマットで文字列に変換するには、 Date クラスで用意されている strftime メソッドを使います。

Dateオブジェクト.strftime([format])

引数として出力したい形式を表す文字列を指定します。フォーマット文字列には普通の文字列と以下のような特別な文字列を組み合わせて指定することができます。

フォーマット文字列出力形式
%A曜日の名称(Sunday, Monday ... )
%a曜日の省略名(Sun, Mon ... )
%B月の名称(January, February ... )
%b月の省略名(Jan, Feb ... )
%c日付と時刻
%C世紀番号 [00,99]
%d日(01-31)
%D%m / %d / %y としての日付
%e%dと同じ
%h%bと同じ
%H24時間制の時(00-23)
%I12時間制の時(01-12)
%j年中の通算日(001-366)
%M分(00-59)
%m月を表す数字(01-12)
%n任意の空白
%p午前または午後(AM,PM)
%R%H : %M としての時刻
%S秒(00-60) (60はうるう秒)
%t任意の空白
%T%H : %M : %S としての時刻
%U週を表す数。最初の日曜日が第1週の始まり(00-53)
%W週を表す数。最初の月曜日が第1週の始まり(00-53)
%w曜日を表す数。日曜日が0(0-6)
%Xロケールの日付形式を使用した時刻
%xロケールの日付形式を使用した日付
%Y西暦を表す数
%y西暦の下2桁(00-99)
%Zタイムゾーン
%zタイムゾーン
%%% 自身

なお時刻に関するフォーマットを指定することも出来るのですが、 Date クラスのオブジェクトは時刻に関する情報は保持していないのですべて 0 で表示されます。

実際の使い方は次のようになります。

require "date"

d = Date.today
str = d.strftime("%Y年 %m月 %d日")

上記の場合は現在日時を「xxxx年 xx月 xx日」と言うフォーマットで文字列として取得できます。

サンプルコード

では簡単なサンプルで試してみます。

# encoding: UTF-8

require "date"

d = Date.today

puts(d.strftime("%Y年 %m月 %d日[%a]"))
puts(d.strftime("%x"))

実行結果は次のようになります。

任意のフォーマットで文字列に変換する

-- --

Ruby で日付オブジェクトを指定したフォーマットで文字列に変換する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。