[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Time range min/max inconsistency

Fischer Krisztián

7/17/2007 2:07:00 PM

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi!

I created a range of Time objects. My problem (?) is, that the range's
min() and max() methods return their values in a different format.

I made the following test:

?> t1 = Time.utc(2007,7,17,10,00)
=> Tue Jul 17 10:00:00 UTC 2007

>> t2 = Time.utc(2007,7,17,12,00)
=> Tue Jul 17 12:00:00 UTC 2007

>> r=(t1..t2)
=> Tue Jul 17 10:00:00 UTC 2007..Tue Jul 17 12:00:00 UTC 2007

>> r.min
=> Tue Jul 17 10:00:00 UTC 2007

>> r.max
=> Tue Jul 17 14:00:00 +0200 2007

As you may see r.max returns the correct value, however it is in a
different time format as r.min's return value (and different from the
initial value).

If I use these values in a user interface, the max value must be
converted to a UTC time with r.max.utc before i can format it with
strftime().

Do you think this is a bug, or should i read more ruby literature? :)

I'm pretty new to ruby, so please don't slap me in the face for this. :)

Thank you,
Chris

- --
Fischer Krisztián
Borganization Kft.
Tel: (+36) 70/384-383-5
Tel: (+36) 1/3360547
email: fischer@borganization.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGnMz46VUohGTtAQYRAl76AJ4jZH+mHmJzQWqn17GUJAl6yDi8lgCgxBZj
anm75OzaJYA1v1hQyrh+w3Y=
=cXVu
-----END PGP SIGNATURE-----

1 Answer

Fischer Krisztián

7/17/2007 11:30:00 PM

0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Brett Simmers wrote:
>> => Tue Jul 17 14:00:00 +0200 2007
> I don't know if this is related to your problem, but whenever I use
> Marshal.load to load a marshaled Time object, it's always created in the
> local timezone, regardless of what zone the saved object was in. This
> is similar behavior, although I'm pretty sure Ranges don't use Marshal,
> and it's weird that it's just the max.

Thanks for the answer.

Seems to me like timezone is the black sheep in ruby. Today I ran into
the problem described above, and shortly after this into an other one.

If you store a UTC time in mysql via rails' ActiveRecord and read it
back, the local timezone is added to the time, which is pretty strange.

I could fix the problem with a small hack, however as a ruby newbie it
took me a day to figure this out. :)

Thanks,
Chris

- --
Fischer Krisztián
Borganization Kft.
Tel: (+36) 70/384-383-5
Tel: (+36) 1/3360547
email: fischer@borganization.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGnVEA6VUohGTtAQYRAjR8AJ0UbIKu37o/ikmuqzsSWKmgAk11+gCeKl8H
08K2vUyDVr1giGzH+Tb88sc=
=RX1m
-----END PGP SIGNATURE-----