Skip to content

Instantly share code, notes, and snippets.

@naveedkakal
Created July 13, 2017 22:21
Show Gist options
  • Save naveedkakal/d8d50e70dd62c4022b8fc69ef33d3d72 to your computer and use it in GitHub Desktop.
Save naveedkakal/d8d50e70dd62c4022b8fc69ef33d3d72 to your computer and use it in GitHub Desktop.
Time zone cheat sheet

Rails Date and Time

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.


Examples

Getting Current Time

  # CORRECT:
  Time.current
  Time.zone.now
  
  # INCORRECT
  Time.now
  DateTime.now

Getting a Date (Today, Yesterday, etc.)

  # CORRECT:
  Date.current
  Date.yesterday
  Time.zone.today
  Time.zone.yesterday
  
  # INCORRECT:
  Date.today

Building Time

  # CORRECT:
  Time.zone.local(2012, 6, 10, 12, 00)
  
  # INCORRECT:
  Time.new(2012, 6, 10, 12, 00)

Time from Timestamp

  # CORRECT:
  Time.zone.at(timestamp)
  
  # INCORRECT:
  Time.at(timestamp)

Parse Time

# CORRECT:
Time.zone.parse(str)

# INCORRECT:
Time.parse(str)

For more reading:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment