- Home ›
- Ruby入門 ›
- 日付(Date、DateTime)クラス ›
- HERE
時刻も含めて指定フォーマットで文字列に変換する
広告
DateTimeクラスのオブジェクトに対してもDateクラスで用意されている「strftime」メソッドを使って指定のフォーマットで文字列に変換することが出来ます。
DateTimeオブジェクト.strftime([format])
引数として出力したい形式を表す文字列を指定します。フォーマット文字列には普通の文字列の他に以下のような特別な文字列を指定することが出来ます。
フォーマット文字列 | 出力形式 |
---|---|
%A | 曜日の名称(Sunday, Monday ... ) |
%a | 曜日の省略名(Sun, Mon ... ) |
%B | 月の名称(January, February ... ) |
%b | 月の省略名(Jan, Feb ... ) |
%c | 日付と時刻 |
%d | 日(01-31) |
%H | 24時間制の時(00-23) |
%I | 12時間制の時(01-12) |
%j | 年中の通算日(001-366) |
%M | 分(00-59) |
%m | 月を表す数字(01-12) |
%p | 午前または午後(AM,PM) |
%S | 秒(00-60) (60はうるう秒) |
%U | 週を表す数。最初の日曜日が第1週の始まり(00-53) |
%W | 週を表す数。最初の月曜日が第1週の始まり(00-53) |
%w | 曜日を表す数。日曜日が0(0-6) |
%X | 時刻 |
%x | 日付 |
%Y | 西暦を表す数 |
%y | 西暦の下2桁(00-99) |
%Z | タイムゾーン |
%% | %自身 |
Dateクラスの場合には時刻に関する情報がなかったため全て0で表示されていましたが、DateTimeクラスでは時刻に関する情報も保持しているため時刻に関する値も表示されます。
実際の使い方は次のようになります。
require "date" d = DateTime.now str = d.strftime("%Y年 %m月 %d日 %H時 %M分 %S秒")
上記の場合は現在日時を「xxxx年 xx月 xx日 xx時 xx分 xx秒」と言うフォーマットで文字列として取得出来ます。
サンプルプログラム
では簡単なサンプルで試してみます。
#! ruby -Ks require "date" d = Date.today print(d.strftime("%Y年 %m月 %d日, %H:%M:%S"), "¥n") dt = DateTime.now print(dt.strftime("%Y年 %m月 %d日, %H:%M:%S"), "¥n")
実行結果は次のようになります。
( Written by Tatsuo Ikura )