Я собираю свой первый скрипт 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 использует неправильную локаль (мне нужен часовой пояс для Германии) или существует проблема летнего времени (в настоящее время у нас есть летнее время в Германии). Как я могу проверить / установить местное время?
С уважением, neradis