日付に関するメモ
ざっとまとめてみる
デフォルトで用意されているのは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オブジェクトを取得できる