Map US postal codes to US timezones
Ruby
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.document
.gitignore
.rspec
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
zip_to_timezone.gemspec

README.rdoc

zip_to_timezone

This gem is designed to map US postal codes to the timezone. The timezone strings are based on ActiveSupport::TimeZone settings that include basic DST information. If used with Rails these timezones will handle DST changes on their own.

Installation

gem install zip_to_timezone

If you are using bundler you can add a line to your Gemfile:

gem "zip_to_timezone"

Usage

This is super simple to use:

ZipToTimezone.get_timezone_for('91304') # => "Pacific Time (US & Canada)"

How it works

This uses Trei longest prefix matching to speed up the searching. This means that all zip codes that start with 90 will be in California and therefore are in Pacific Time. If I need to match on full zip codes in some states to differentiate timezones I can do that (eg: Kansas or Indiana) by just adding more specific entires.

Note on accuracy

This gem combines two things that kind of suck to make them suck less. To do this though I had to make a lot of guesses. Please let me know if there are bad mappings so I can fix them. My data is imperfect and in some places outright wrong. The goal of the project was to handle the 95% case and hopefully grow it to be more accurate over time.

References

Note on Patches/Pull Requests

  • Fork the project. Make your feature addition or bug fix. Add tests for it.

  • This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a

commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2009 Ryan Garver. See LICENSE for details.