Mega Code Archive

 
Categories / Ruby / Time
 

Convert time to time zone

class Time   def convert_zone(to_zone)     original_zone = ENV["TZ"]     utc_time = dup.gmtime     ENV["TZ"] = to_zone     to_zone_time = utc_time.localtime     ENV["TZ"] = original_zone     return to_zone_time   end end convert_zone("US/Pacific") t = Time.at(1000000000)                # => Sat Sep 08 21:46:40 EDT 2001 t.convert_zone("US/Pacific")           # => Sat Sep 08 18:46:40 PDT 2001 convert_zone("US/Alaska") t = Time.at(1000000000)                # => Sat Sep 08 21:46:40 EDT 2001 t.convert_zone("US/Alaska")            # => Sat Sep 08 17:46:40 AKDT 2001 convert_zone("UTC") t = Time.at(1000000000)                # => Sat Sep 08 21:46:40 EDT 2001 t.convert_zone("UTC")                  # => Sun Sep 09 01:46:40 UTC 2001 convert_zone("Turkey") t = Time.at(1000000000)                # => Sat Sep 08 21:46:40 EDT 2001 t.convert_zone("Turkey")               # => Sun Sep 09 04:46:40 EEST 2001 convert_zone("Asia/Calcutta") t = Time.at(1000000000)                # => Sat Sep 08 21:46:40 EDT 2001 t.convert_zone("Asia/Calcutta")        # => Sun Sep 09 07:16:40 IST 2001 ENV["TZ"] = "Africa/Lagos" ENV["TZ"] = "Africa/Lagos" t = Time.at(1000000000)                # => Sun Sep 09 02:46:40 WAT 2001 ENV["TZ"] = nil puts t.convert_zone("Singapore")            # => Sun Sep 09 09:46:40 SGT 2001 puts t.convert_zone("US/Eastern")           # => Sat Sep 08 21:46:40 EDT 2001