我正在组装我的第一个ruby脚本,它应该为我的计算机设置一个唤醒时间(Kubuntu 10.04)。
wake_h = 7
wake_m = 40
t = Time.now
puts "Current system time: #{t.to_s}"
t += 24*60*60 unless t.hour.between?(0, 5)
tvals = t.to_a
tvals[0,3] = 0 , wake_m, wake_h
wt = Time.local(*tvals)
puts "Setting wake up time to: #{wt.to_s}"
`rtcwake -m no -t #{wt.to_i}`
生成以下输出:
Current system time: Sun Feb 13 13:15:08 +0100 2011
Setting wake up time to: Mon Feb 14 07:40:00 -0100 2011
显然,Ruby假设我的本地时区为-0100,尽管当前系统时间产生另一个(正确的)时区+0100。可能Time使用错误的语言环境(我需要德国的时区)或者有DST问题(我们目前在德国有DST)。如何查看/设置本地时间使用?
问候,neradis
答案 0 :(得分:0)
来自ActiveSupport::TimeWithZone的文档:
“类似时间的类,可以代表任何时区的时间。这是必要的,因为标准的Ruby Time实例仅限于UTC和系统的ENV ['TZ']区域。“
这就是为什么它给你-0100。