When using the Date
, Time
, and DateTime
classes in ruby you must use time zone sensitive methods. The database stores records without a timezone, in UTC. Rails parses these times to the configured timezone, when using time-zone sensitive methods.
# CORRECT:
Time.current
Time.zone.now
# INCORRECT
Time.now
DateTime.now
# CORRECT:
Date.current
Date.yesterday
Time.zone.today
Time.zone.yesterday
# INCORRECT:
Date.today
# CORRECT:
Time.zone.local(2012, 6, 10, 12, 00)
# INCORRECT:
Time.new(2012, 6, 10, 12, 00)
# CORRECT:
Time.zone.at(timestamp)
# INCORRECT:
Time.at(timestamp)
# CORRECT:
Time.zone.parse(str)
# INCORRECT:
Time.parse(str)