【问题标题】:Ruby :tzinfo: localtime for other jurisdictions including time zone offset & daylight savings policyRuby :tzinfo: 其他司法管辖区的本地时间,包括时区偏移和夏令时政策
【发布时间】:2012-04-10 15:15:51
【问题描述】:

通过我的last question,我现在知道如何访问 tzinfo gem。但是我不知道如何将它用于我的目的。

假设我需要每天早上 8:00 以适用于布琼布拉的任何时区和夏令时的组合向布隆迪布琼布拉的一个人发送一封电子邮件。我的理解是 tzinfo “知道”这些信息。是否可以将一年中的每一天的 8:00 AM 布琼布拉时间(包括夏令时)转换为 UTC?我想做类似的事情:

require 'tzinfo'
bz = TZInfo::Timezone.get('Africa/Bujumbura')
#bujumbura_time=????
bujumbura_utctime=tz.local_to_utc(bujumbura_time)

如何对“bujumbura_time”进行编码以反映布琼布拉时间为上午 8:00?

【问题讨论】:

    标签: ruby dst tzinfo


    【解决方案1】:

    我认为您不需要让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 解释了您的选择。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-25
      • 2021-10-16
      • 2019-09-06
      • 1970-01-01
      • 2014-05-06
      • 2010-10-12
      • 2022-01-10
      • 2016-04-09
      相关资源
      最近更新 更多