1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
class String
# Form can be either :utc (default) or :local.
def to_time(form = :utc)
return nil if self.blank?
Timeliness::Parser.parse(self, :datetime, :zone => form)
end
def to_date
return nil if self.blank?
values = Timeliness::Parser._parse(self, :date).map { |arg| arg || 0 }
::Date.new(*values[0..2])
end
def to_datetime
return nil if self.blank?
values = Timeliness::Parser._parse(self, :datetime).map { |arg| arg || 0 }
values[7] = values[7]/24.hours.to_f if values[7] != 0
values[5] += Rational(values.delete_at(6), 1000000)
::DateTime.civil(*values)
end
end
|