|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
対象: 時刻文字列のパースと時刻のフォーマット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]
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||