D
d c
Hi -
I cant seem to get localtime to work, can anyone share some gotchas?
## check environment is setup
[dc@fox:~]$ echo $TZ
Japan/Tokyo
[dc@fox:~]$ irb
irb(main):001:0> ENV['TZ']
=> "Japan/Tokyo"
# so the env is coming through ok... or is it?
irb(main):021:0> u=Time.now.utc
=> Tue Jan 04 06:21:25 UTC 2011
irb(main):019:0> t1=Time.now.localtime
=> Tue Jan 04 06:21:02 +0000 2011
irb(main):020:0> t1.zone
=> "UTC"
### so it seems zone is being ignored
# is there any way to override/forcibly set the timezone?
irb(main):006:0> t1.localtime
=> Tue Jan 04 06:12:56 +0000 2011
# doesnt change, i guess cos zone is locked
irb(main):009:0> t1.localtime("+09:00")
ArgumentError: wrong number of arguments (1 for 0)
from (irb):9:in `localtime'
from (irb):9
from :0
## according to docs this should work:
http://www.ruby-doc.org/core/classes/Time.html#M000346
### ok, trying to set the timezones
irb(main):001:0> Time.new.zone
=> "UTC"
irb(main):002:0> ENV["TZ"]="JST"
=> "JST"
irb(main):003:0> Time.new.zone
=> "UTC"
irb(main):004:0> ENV["TZ"]="PST"
=> "PST"
irb(main):005:0> Time.new.zone
=> "UTC"
irb(main):006:0> ENV["TZ"]="PST+8"
=> "PST+8"
irb(main):007:0> Time.new.zone
=> "PST"
ftw PST and JST get ignored, but "PST+8" gets accepted as PST?
ok i guess... we need a +X so hacking gives:
irb(main):003:0> ENV["TZ"]="JST+0"
=> "JST+0"
irb(main):004:0> Time.new.zone
=> "JST"
irb(main):005:0> Time.now.localtime
=> Tue Jan 04 06:41:55 +0000 2011
ok, but the time hasnt changed, so JST is still not recognized...
http://www.timeanddate.com/library/abbreviations/timezones/
then as PST:
irb(main):008:0> Time.now
=> Mon Jan 03 22:32:51 -0800 2011
irb(main):009:0> Time.now.utc
=> Tue Jan 04 06:32:55 UTC 2011
irb(main):011:0> Time.now.localtime
=> Mon Jan 03 22:33:01 -0800 2011
irb(main):012:0>
## so any Time.now defaults to localtime?
[dc@fox:~]$ export TZ=JST
[dc@fox:~]$ echo $TZ
JST
[dc@fox:~]$ irb
irb(main):001:0> ENV['TZ']
=> "JST"
irb(main):002:0> Time.now.zone
=> "UTC"
irb(main):003:0>
but cannot be passed via the shell.
so by conclusion it seems i can get PST and GMT timezones, but not japan.
also the calculation methods to convert timezones seem broken.
do i need to use other libs to deal with timezones effectively?
tx,
/dc
__________________________________
$B!!(BDavid 'DC' Collier
Pikkle $B3t<02q<R(B
$B<hDyLr<RD9(B
(e-mail address removed)
+81 (0)80-2037-1965
$BJg=8Cf(B! http://pikkle.com/company/hiring
__________________________________
I cant seem to get localtime to work, can anyone share some gotchas?
## check environment is setup
[dc@fox:~]$ echo $TZ
Japan/Tokyo
[dc@fox:~]$ irb
irb(main):001:0> ENV['TZ']
=> "Japan/Tokyo"
# so the env is coming through ok... or is it?
irb(main):021:0> u=Time.now.utc
=> Tue Jan 04 06:21:25 UTC 2011
irb(main):019:0> t1=Time.now.localtime
=> Tue Jan 04 06:21:02 +0000 2011
irb(main):020:0> t1.zone
=> "UTC"
### so it seems zone is being ignored
# is there any way to override/forcibly set the timezone?
irb(main):006:0> t1.localtime
=> Tue Jan 04 06:12:56 +0000 2011
# doesnt change, i guess cos zone is locked
irb(main):009:0> t1.localtime("+09:00")
ArgumentError: wrong number of arguments (1 for 0)
from (irb):9:in `localtime'
from (irb):9
from :0
## according to docs this should work:
http://www.ruby-doc.org/core/classes/Time.html#M000346
### ok, trying to set the timezones
irb(main):001:0> Time.new.zone
=> "UTC"
irb(main):002:0> ENV["TZ"]="JST"
=> "JST"
irb(main):003:0> Time.new.zone
=> "UTC"
irb(main):004:0> ENV["TZ"]="PST"
=> "PST"
irb(main):005:0> Time.new.zone
=> "UTC"
irb(main):006:0> ENV["TZ"]="PST+8"
=> "PST+8"
irb(main):007:0> Time.new.zone
=> "PST"
ftw PST and JST get ignored, but "PST+8" gets accepted as PST?
ok i guess... we need a +X so hacking gives:
irb(main):003:0> ENV["TZ"]="JST+0"
=> "JST+0"
irb(main):004:0> Time.new.zone
=> "JST"
irb(main):005:0> Time.now.localtime
=> Tue Jan 04 06:41:55 +0000 2011
ok, but the time hasnt changed, so JST is still not recognized...
http://www.timeanddate.com/library/abbreviations/timezones/
then as PST:
irb(main):008:0> Time.now
=> Mon Jan 03 22:32:51 -0800 2011
irb(main):009:0> Time.now.utc
=> Tue Jan 04 06:32:55 UTC 2011
irb(main):011:0> Time.now.localtime
=> Mon Jan 03 22:33:01 -0800 2011
irb(main):012:0>
## so any Time.now defaults to localtime?
[dc@fox:~]$ export TZ=JST
[dc@fox:~]$ echo $TZ
JST
[dc@fox:~]$ irb
irb(main):001:0> ENV['TZ']
=> "JST"
irb(main):002:0> Time.now.zone
=> "UTC"
irb(main):003:0>
but cannot be passed via the shell.
so by conclusion it seems i can get PST and GMT timezones, but not japan.
also the calculation methods to convert timezones seem broken.
do i need to use other libs to deal with timezones effectively?
tx,
/dc
__________________________________
$B!!(BDavid 'DC' Collier
Pikkle $B3t<02q<R(B
$B<hDyLr<RD9(B
(e-mail address removed)
+81 (0)80-2037-1965
$BJg=8Cf(B! http://pikkle.com/company/hiring
__________________________________