I'm parsing something like this:
11/23/10 23:29:57
which has no time zone associated with it, but I know it's in the UTC time zone (while I'm not). How can I get Ruby to parse this as if it were in the UTC timezone?
Ruby | DateTime parse() function DateTime#parse() : parse() is a DateTime class method which parses the given representation of date and time, and creates a DateTime object. Return: given representation of date and time, and creates a DateTime object.
Use String#in_time_zone (Rails 4+) This parses the date and time in the String into the time zone provided.
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 2010 s += " 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.zone Time.zone = "UTC" Time.zone.parse("Tue Nov 23 23:29:57 2010") # => Tue, 23 Nov 2010 23:29:57 UTC +00:00 Time.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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With