Search code examples
rubydate

How do you get DateTime.parse to return a time in your time zone?


I need this

 require 'date'
 DateTime.parse "Mon, Dec 27 6:30pm"

to return a DateTime for 6:30pm in the EDT timezone, but it returns one in UTC. How can I get a EST DateTime or convert the UTC one into an EDT DateTime with a 6:30pm value?


Solution

  • Final answer ;-)

    require 'date'
    estHoursOffset = -5
    estOffset = Rational(estHoursOffset, 24)
    date = (DateTime.parse("Mon, Dec 27 6:30pm") - (estHoursOffset/24.0)).new_offset(estOffset)
    

    (or -4 for EDT)