How do I get Ruby to parse time as if it were in a different time zone? How do I get Ruby to parse time as if it were in a different time zone? ruby ruby

How do I get Ruby to parse time as if it were in a different time zone?


You could just append the UTC timezone name to the string before parsing it:

require 'time's = "11/23/10 23:29:57"Time.parse(s) # => Tue Nov 23 23:29:57 -0800 2010s += " UTC"Time.parse(s) # => Tue Nov 23 23:29:57 UTC 2010


If your using rails you can use the ActiveSupport::TimeZone helpers

current_timezone = Time.zoneTime.zone = "UTC"Time.zone.parse("Tue Nov 23 23:29:57 2010") # => Tue, 23 Nov 2010 23:29:57 UTC +00:00Time.zone = current_timezone

It is designed to have the timezone set at the beginning of the request based on user timezone.

Everything does need to have Time.zone on it, so Time.parse would still parse as the servers timezone.

http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html

Note: the time format you have above was no longer working, so I changed to a format that is supported.


credit from https://rubyinrails.com/2018/05/30/rails-parse-date-time-string-in-utc-zone/,

Time.find_zone("UTC").parse(datetime)# => Wed, 30 May 2018 18:00:00 UTC +05:30