日付に関するメモ

ざっとまとめてみる

デフォルトで用意されているのはTimeクラス
  • Time.nowで現在時刻を取得できる
  • Time.local(y,m,d,hour,min,sec,usec) で指定した時刻を取得できる(mは1〜12)
  • 整数との加減算は秒数を加減算してTimeを返す
  • Timeとの加減算は秒数をFloatで返す
  • strftime でフォーマットできる。%F(=%Y-%m-%d) と%T(%H:%M:%S) を覚えておけばOK
  • これだと文字列からTimeを作るのが面倒なので拡張ライブラリtimeをrequireする
require 'time' でできること
  • Time.parse("yyyy/mm/dd") => Time を生成
  • Time.strptime(date, format) で Time を生成できる(あらかじめ入ってくる文字列の書式がわかっている場合)
  • 日付を扱いたいならtimeだと少し厄介なのでdateをrequireするとよい
require 'date' でできること
  • DateとDateTimeを使えるようになる
  • Date.todayで今日のDate取得
  • Dateは時刻を扱えないので、特に事情がなければ DateTime を使うことになる
  • DateTime.now で現在時刻の DateTime を生成
  • DateTime.parse("2013-01-01T23:12:56") で指定した日時の DateTime を生成(strptimeも使用可能)
  • 整数との加減算は日数を加減算してDateTimeを返す
  • DateTime >> 1 で1ヶ月先の日付、DateTime << 3 で3か月前を計算できる
  • DateTimeとの加減算は日数をFloatで返す
  • strftimeでフォーマットできる
  • to_time でTimeオブジェクトを取得できる