DesignAssembler

備忘録に近い

Rubyの時間の扱い

時間を表すクラスにはDateとTimeとDateTimeクラスがあって、Dateクラスは日付、Timeクラスは時間、DateTimeクラスは日付と時間をそれぞれ扱います。

時間を表示する

最初1つずつフォーマットごとに切り出して連結していたのですが、strftimeという便利なメソッドがありました。

date_time = Time.now
=> 2016-05-02 06:58:51 +0900
date_time.year.to_s + "/" + date_time.month.to_s + '/' + date_time.day.to_s + '/' + " " + date_time.hour.to_s + ":" + date_time.min.to_s
=> "2016/5/2/ 6:58"
date_time.strftime("%Y/%m/%d %H:%M")
=> "2016/05/02 06:58"

文字列を時間に変換する

文字列を時間に変換するにはどうすればいいかと思っていたらparseメソッドが用意されていました。流石です。

date_time = "2016/05/01 00:00"
DateTime.parse(date_time.gsub("/","-"))
=> #<DateTime: 2016-05-01T00:00:00+00:00 ((2457510j,0s,0n),+0s,2299161j)>

参考

http://docs.ruby-lang.org/ja/1.9.3/class/DateTime.html