Rajinder said:
Hi,
I am trying to understand the key differences between Time, Date and
DateTime classes.
When should one use one over the other? Does anyone know of a good post
that explains each of these classes and post on how to do basic time,
date arithmetic or conversion between each?
Note: I am by no means an expert on this.
Time provides you with a date and a time and is fine if you are sure the
date ranges from the year 1970 to 2037.
It's excellent for timestamps and such. Essentially, it's just the
number of seconds elapsed since 1970-1-1. So if the provided methods
don't suit you, you have to calculate in seconds, using #to_i and #at .
Date is a heavyweight, allowing for Julian or Gregorian calendars,
specifying the reform dates. You don't have to worry about date ranges
(unless you need dates like -5000-1-1). Calculating is superior to Time
objects.
DateTime is the same as a Date with hours, minutes and seconds.
All three can be enhanced by require-ing active_support.
The creation of a Date object is about ten times slower than the
creation of a time object (on my PC).
In Ruby 1.9 conversion is simple: #to_date, #to_time and #to_datetime.
For versions earlier: google, or copy the 1.9 methods from the
documentation (untested).
hth,
Siep