Не думаю, что вам нужно bujumbura_time
знать о конкретном часовом поясе.Вместо этого вы создаете местное время, которое затем можно преобразовать в UTC вместе с часовым поясом:
require 'tzinfo'
bz = TZInfo::Timezone.get('Africa/Bujumbura')
bujumbura_time = Time.local(2012, 3 ,27, 8, 0, 0)
bujumbura_utctime = bz.local_to_utc(bujumbura_time)
Обратите внимание, что преобразование из местного времени в UTCможет быть неудобно из-за перехода на летнее время - когда часы идут вперед, час (обычно) местного времени полностью пропускается, а когда часы возвращаются назад, часть местного времени встречается дважды.Вы должны решить, что вы хотите, чтобы произошло в таких ситуациях.(Документация local_to_utc
объясняет ваши варианты.)