日付と時刻のオブジェクトを指定したフォーマットで文字列に変換する
DateTime クラスのオブジェクトを作成したあと、指定したフォーマットを使って日付と時刻のオブジェクトを文字列に変換することができます。ここでは Ruby で日付と時刻のオブジェクトを指定したフォーマットで文字列に変換する方法について解説します。
(Last modified: )
指定したフォーマットで文字列に変換する
DateTime
クラスのオブジェクトに対しても Date
クラスで用意されている strftime
メソッドを使って指定のフォーマットで文字列に変換することができます。
DateTimeオブジェクト.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と同じ |
%H | 24時間制の時(00-23) |
%I | 12時間制の時(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
クラス のオブジェクトの場合は時刻に関する情報が含まれていませんでしたが、 DateTime
クラスのオブジェクトの場合は日付と時刻の情報を持っているので時刻に関する値も表示されます。
実際の使い方は次のようになります。
require "date" dn = DateTime.now str = d.strftime("%Y年 %m月 %d日 %H時 %M分 %S秒")
上記の場合は現在日時を「xxxx年 xx月 xx日 xx時 xx分 xx秒」と言うフォーマットで文字列として取得できます。
では簡単なサンプルで試してみます。
# encoding: UTF-8 require "date" dt = Date.today puts(dt.strftime("%Y年 %m月 %d日, %H:%M:%S")) dn = DateTime.now puts(dn.strftime("%Y年 %m月 %d日, %H:%M:%S"))
実行結果は次のようになります。
-- --
Ruby で日付と時刻のオブジェクトを指定したフォーマットで文字列に変換する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。