2012-04-18 57 views
2

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

是否有任何理由不使用TZInfo?每个人都应该使用TZInfo吗?

+0

我也很好奇这个问题;我维护一些利用ActiveSupport的应用程序: :TimeZone和TZInfo :: Timezone令人沮丧的效果试图找出最好的方式前进,希望只有一个或另一个 – ilasno 2012-05-05 20:42:53

回答

3

TimeZone类充当TZInfo :: Timezone实例的包装。它允许Rails的做到以下几点:

  • 上限中设置由TZInfo提供的142个区
  • 检索和使用友好的名称显示区(例如,“东部时间(美国&加拿大有意义的子集区的)”,而不是‘美国/纽约’)
  • 只懒洋洋地在需要的时候,他们
  • 创建通过时区的地方,解析的ActiveSupport :: TimeWithZone情况下,在现在的方法加载TZInfo ::时区的情况。

来源:Rails的3路 - 第二版中的ActiveSupport ::时区提供了

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

+0

我不知道为什么我找不到EST ...它似乎是现在有可能是旧版本我不知道,谢谢你对这两个课程的澄清!:) – mltsy 2012-11-29 21:02:48

+0

我不知道'#us_zones'方法,它帮助我在我们的美国时区应用程序,因为这是大多数用户的地方。谢谢! – siannopollo 2016-04-28 22:19:12