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

広告

現在時刻や時刻を指定してTimeクラスのオブジェクトを作成した後で任意に指定したフォーマットで文字列として取得する方法を確認します。Timeクラスで用意されている「strftime」メソッドを使います。

変数 = Timeオブジェクト.strftime(format文字列)

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

フォーマット文字列出力形式
%A曜日の名称(Sunday, Monday ... )
%a曜日の省略名(Sun, Mon ... )
%B月の名称(January, February ... )
%b月の省略名(Jan, Feb ... )
%c日付と時刻
%d日(01-31)
%H24時間制の時(00-23)
%I12時間制の時(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タイムゾーン
%%%自身

例えば次のように使用します。

t = Time.now
str = t.strftime("現在時刻 %H時 %M分 %S秒")

サンプルプログラム

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

LibraryTime4.rb

#! ruby -Ks

t = Time.now
strTime = t.strftime("現在時刻 %H時 %M分 %S秒")
print(strTime, "¥n")

strDay = t.strftime("現在日時 %B,%d(%A) %Y %Z")
print(strDay, "¥n")

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

任意のフォーマットで文字列として取得する

( Written by Tatsuo Ikura )