Getting Time in specified timezone/offset

H

hemant

I have got following method in my code:


def to_time
if time? then
Time.mktime(year,month,day_of_month,hour,minute,second,usec)
else
Time.mktime(year,month,day_of_month)
end
end

In my class, I also have timezone/utc offset as an attribute and above
method basically returns a Time object based on those attributes.

But as you can see, Time.mktime is going to convert that time to local
zone and return that value. So, is there anyway to get a Time object
by passing above said attributes and timezone/offset in timezone
specified. That is, no automatic conversion to utc or local zone.
 
M

Mike Shock

Good time-of-the-day! ;-)

Probably you need a DateTime object, which can be constructed (as 'ri
DateTime' says) like this:
date_time = DateTime.new(year, month, day, hour, min, sec, offset)
where offset is given in fractions of day: e.g. 5/24.0 for an offset of
+5 hours from UTC or GMT.

Here's a sample:

require 'date'
t1 = DateTime.new(2007, 2, 10, 12, 38, 10, 5/24.0)
printf "%s %s %s\n", t1, t1.offset.to_s, t1.zone #
2007-02-10T12:38:10+0500 0.208 +0500

Cheers -
Mike Shock
 
S

Stefan Rusterholz

Mike said:
Good time-of-the-day! ;-)

Probably you need a DateTime object, which can be constructed (as 'ri
DateTime' says) like this:
date_time = DateTime.new(year, month, day, hour, min, sec, offset)
where offset is given in fractions of day: e.g. 5/24.0 for an offset of
+5 hours from UTC or GMT.

Won't do it :) The problem is, that we intend to actually replace stdlib
DateTime. Time obviously does store the offset internally, as Time.local
vs. Time.utc prove. Since we don't want to replace Time (which is merely
a wrapper around unix-epoch) we'd like to interface with it. And if we
can preserve the timezone-offset that'd be definately a plus.

regards
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top