从我的last question,我现在知道如何访问tzinfo gem。但是我不知道如何将它用于我的目的。
假设我需要每天早上8:00向布隆迪布琼布拉的一个人发送一封电子邮件,其中包括每天适用于布琼布拉的时区和夏令时。我的理解是tzinfo“知道”这些信息。是否有可能在一年中的每一天将8:00 AM Bujumbura时间(包括夏令时)转换为UTC?我想做点什么:
require 'tzinfo'
bz = TZInfo::Timezone.get('Africa/Bujumbura')
#bujumbura_time=????
bujumbura_utctime=tz.local_to_utc(bujumbura_time)
如何编码“bujumbura_time”以反映它在布琼布拉时间是上午8点?
答案 0 :(得分:2)
我认为你不需要让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
documentation解释了您的选择。)