在ActiveSupport时区找不到EST

时间:2012-04-18 23:07:59

标签: ruby-on-rails timezone activesupport

我不确定如何开始...我不确定为什么甚至需要ActiveSupport :: TimeZone,因为TZInfo :: Timezone似乎工作得很好,而且更完整...但我们一直由于某种原因使用ActiveSupport,我无法在可用的时区中找到EST时区。我错过了什么吗?有什么理由不包括在内吗?

有没有理由不使用TZInfo?每个人都应该使用TZInfo吗?

1 个答案:

答案 0 :(得分:3)

TimeZone类充当TZInfo :: Timezone实例的包装器。它允许Rails执行以下操作:

  • 将TZInfo提供的区域集限制为142个区域的有意义子集
  • 检索并显示具有更友好名称的区域(例如,“东部时间(美国和加拿大)”而不是“America / New_York”)
  • 只在需要时才加载TZInfo :: Timezone实例
  • 通过TimeZone的本地,解析,现在和方法创建ActiveSupport :: TimeWithZone实例。

来源:Rails 3 Way - 第2版

EST在ActiveSupport :: TimeZone中提供,它名为“Eastern Time(US& Canada)”。您可以通过调用TimeZone.all(包括提供的ActiveSupport)来查看ActiveSupport :: TimeZone提供的所有时区。 EST也包含在美国时区,您可以通过调用TimeZone.us_zones返回较小的美国时区集合。访问TimeZone集合将提供一个TimeZone,前面是它的偏移量,例如。 TimeZone(“东部时间(美国和加拿大)”] =>(GMT-05:00)东部时间(美国和加拿大)。