Weird (?) ActiveSupport::TimeZone parse behaviour
2012-06-13 16:38:50 GMT
I must be slipping, but say I have a string that looks like:
3/11/2012 2:50:00 AM
If I use the UTC timezone and ask it to parse this time, what would you expect the result to be? Personally, I'd say
3/11/2012 2:50:00 AM UTC
Given this is the DST switchover date (for some places) this is an edge case. It's the "spring forward" rule so 2:50 AM is 3:50... But not in UTC... that's one of the nice things about UTC. So, I was surprised when:
ActiveSupport::TimeZone["UTC"].parse("3/11/2012 2:50:00 AM") => Sun, 11 Mar 2012 03:50:00 UTC +00:00
Ok, maybe the AM trips it up into thinking I'm not really UTC because I'm not using a 24 clock? Nope:
ActiveSupport::TimeZone["UTC"].parse("3/11/2012 2:50:00") => Sun, 11 Mar 2012 03:50:00 UTC +00:00
But, if I append " UTC" to the string it works as I expect:
ActiveSupport::TimeZone["UTC"].parse("3/11/2012 2:50:00 UTC") => Sun, 11 Mar 2012 02:50:00 UTC +00:00
ActiveSupport::TimeZone["UTC"].parse("3/11/2012 2:50:00 AM UTC") => Sun, 11 Mar 2012 02:50:00 UTC +00:00
I looked at the documentation and parse for AR:TZ takes two parameters, the second being a "now" that:
If upper components are missing from the string, they are supplied from #now
So, I tried passing in a UTC current time, but it also went back to 3:50:
ActiveSupport::TimeZone["UTC"].parse("3/11/2012 2:50:00", ActiveSupport::TimeZone["UTC"].now) => Sun, 11 Mar 2012 03:50:00 UTC +00:00
For reference, I'm using:
Am I being stupid here? A cursory googling led to
The wontfix is indicative, but maybe this should at least be a gotcha in the documentation? Again, apologies if I'm being dense and have missed something obvious.
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/qP-2xEP7iWwJ.
To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe <at> googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.