Ruby time zone handling when merging data -


two sets of data need merged create new datetime object

def mergedatetime(date_to_merge, time_to_merge)   datetime.new(date_to_merge.year, date_to_merge.month,date_to_merge.day, time_to_merge.hour, time_to_merge.min, time_to_merge.sec) end 

querying @signature = signature.where('playtime_id = ?', 514).first returns

signature id: 834,[...], created_at: "2017-06-27 05:16:52" 

and querying @interruption = interruption.where('playtime_id = ?', 514).first returns

interruption id: 190, [...], pause: "2017-06-27 06:46:19" 

but running

mergedatetime(@signature.created_at, @interruption.pause) 

returns

tue, 27 jun 2017 08:46:19 +0000 

which wrong interpreted data @ gmt +2 , should have generated

tue, 27 jun 2017 06:46:19 +0000 

how can presumption of timezone adjustment neutered? and take account offset of timezone according date_to_merge date?

specify timezone in_time_zone:

def mergedatetime(date_to_merge, time_to_merge)   date_to_merge = date_to_merge.in_time_zone('utc')   time_to_merge = time_to_merge.in_time_zone('utc')   datetime.new(     date_to_merge.year,      date_to_merge.month,date_to_merge.day,      time_to_merge.hour,      time_to_merge.min,      time_to_merge.sec   ) end 

Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -