Hello everyone! I have a question :) When I run this command : puts Time.now I got => 2009-02-18T14:31:17-08:00 But if then I do this : require 'date'; expiration_date = DateTime.new(2008, 02, 18, 12, 12, 13); puts expiration_date I got => 2008-02-18T12:12:13+00:00 My question is : What is the "-08:00" ? I assume it's the timezone? Then how to set my expiration_date variable to have the same timezone? Thank you!
on 2009-02-19 00:33
on 2009-02-19 01:20
On Feb 18, 3:33 pm, Guillaume L. <firstname.lastname@example.org> wrote: > 13); puts expiration_date > I got => 2008-02-18T12:12:13+00:00 > > My question is : What is the "-08:00" ? I assume it's the timezone? Then > how to set my expiration_date variable to have the same timezone? > > Thank you! > -- > Posted viahttp://www.ruby-forum.com/. DateTime.new is an alias for DateTime.civil. You can see its documentation here: http://www.ruby-doc.org/stdlib/libdoc/date/rdoc/cl... You're right that "-08:00" is something like a timezone. It's the offset from UTC (Coordinated Universal Time) and it's determined by your timezone. Anyway, as you can see in the documentation, there's an extra argument after the one for seconds where you can set your offset. It's set as a fraction of a day, so in your case you'd want to do something like this: expiration_date = DateTime.new(2008, 02, 18, 12, 12, 13, -8/24.0) HTH, Chris
on 2009-02-19 01:29
Perfect! By the waym why -8/24.0 instead of -8/24 ? Thank you!
on 2009-02-19 01:53
On [Thu, 19.02.2009 08:29], Guillaume L. wrote: > By the waym why -8/24.0 instead of -8/24 ? Fire up an instance of irb and see for yourself. Nah: if you did -8/24 it would return -1 instead of -0.33~ That's because arithmethic operations always return a value as precise as the precisest one in the term, which in this case is an Integer, no floating point number.
on 2009-02-19 03:57
Thanks for the reply! I got it!