対象: 時刻文字列のパースと時刻のフォーマットTimeオブジェクトから任意のフォーマットで時刻文字列を取得するには、Time.strftimeメソッド、時刻を表す文字列からTimeオブジェクトに変換するにはTime.parseメソッドを利用する。 Timeから任意の形式の時刻文字列を取得Timeオブジェクトから任意の形式の時刻文字列を得るにはTime.strftimeメソッドを利用する。 p Time.now.strftime("%d/%b/%Y %H:%M:%S") "22/Feb/2010 22:22:22" フォーマット文字列では以下の指示子を使用可能。
時刻を表す文字列のパース時刻を表す文字列をパースしてTimeオブジェクトに変換するにはTime.parseメソッドを利用する。Time.parseメソッドを利用するためにはtimeライブラリが必要となる。 require "time" t1 = Time.parse("2010/02/22 22:22:22") p t1 t2 = Time.parse("20100222 222222") p t2 t3 = Time.parse("2010/02/22") p t3 t4 = Time.parse("22 Feb 2010") p t4 以下はこのコードの実行結果である。 Mon Feb 22 22:22:22 +0900 2010 Mon Feb 22 22:22:22 +0900 2010 Mon Feb 22 00:00:00 +0900 2010 Mon Feb 22 00:00:00 +0900 2010 見ての通り、幅広い時刻文字列の形式に対応している。もし、パースできない場合は前処理でTime.parseメソッドがパース可能な形式に整形してやると良いだろう。 Time.parseTime.strftimeでミリ秒及びナノ秒を表示させるJRuby 1.4.0とRuby 1.9.1ではTime.strftimeで、従来からの指示子に加えて%L(ミリ秒)、%N(ナノ秒)が利用できる。(ただし、Ruby 1.9.1で可能な%3N等はJRuby 1.4.0では表示できないようだ。また、JRuby 1.4.0では%Lの値と%Nの値とが必ずしも整合しないが原因は不明。) p "current time is #{Time.now.strftime("%d/%b/%Y %H:%M:%S.%L")}" "current time is 20/Feb/2010 22:27:09.472" (2010/02/20)
Copyright(C) 2004-2014 モバイル開発系(K) All rights reserved.
[Home]
|