Working with Dates and Times (date)
Core Ruby has a Time class, but
we will encounter a lot of situations where we also need to work with
dates, or combinations of dates and times. Ruby’s
date standard library gives us Date and DateTime, and extends Time with conversion methods for each of them.
This library comes packed with a powerful parser that can handle all sorts
of date formats, and a solid date formatting engine to output data based
on a template. Here are just a couple of trivial examples to give you a
sense of its flexibility:
>> Date.strptime("12/08/1985","%m/%d/%Y").strftime("%Y-%m-%d")
=> "1985-12-08"
>> Date.strptime("1985-12-08","%Y-%m-%d").strftime("%m/%d/%Y")
=> "12/08/1985"
>> Date.strptime("December 8, 1985","%b%e, %Y").strftime("%m/%d/%Y")
=> "12/08/1985"Date objects can also be queried
for all sorts of information, as well as manipulated to produce new
days:
>> date = Date.today => #<Date: 2009-02-09 (4909743/2,0,2299161)> >> date + 1 => #<Date: 2009-02-10 (4909745/2,0,2299161)> >> date << 1 => #<Date: 2009-01-09 (4909681/2,0,2299161)> >> date >> 1 => #<Date: 2009-03-09 (4909799/2,0,2299161)> >> date.year => 2009 >> date.month => 2 >> date.day => 9 >> date.wday => 1 >> date + 36 => #<Date: 2009-03-17 (4909815/2,0,2299161)>
Here we’ve just scratched the surface, but in the interest of
keeping a quick pace, we’ll dive right into an example. So far, we’ve been
looking at Date, but now we’re going to
work with DateTime. The two are basically the same, except that the ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access