【发布时间】:2011-03-10 03:47:26
【问题描述】:
我的 rails 3 应用需要与外部网络服务交互。此网络服务提供有关整个美国的降雨事件的信息(最终国家无关紧要)。相关信息是格式为 ISO8601 的开始/结束时间,包括时区。该服务器将在美国东海岸运行(因此是 EST,即将成为 EDT)。所有数据库条目都将存储为 UTC。
我需要能够存储事件发生的时区 (TZ),因此我向用户提供了在他们自己的 TZ 或原始 TZ 中查看事件的选项。一旦他们到达该位置,他们就不会关心事件是否基于他们的 HOME TZ 开始,而是基于事件发生的 TZ。
输入数据:
start = "2011-04-08T10:00:00-06:00"
end = "2011-04-08T16:00:00-06:00"
#fyi
Time.zone => GMT-05:00 Eastern Time US Canada
# Server time zone, original time zone lost !!!!
Time.parse(start) => 2011-04-08 12:00:00 -0400
# UTC, time zone lost
Time.zone.parse("2011-04-08T10:00:00-06:00") => Fri, 08 Apr 2011 16:00:00 UTC 00:00
我看不到任何方法(减去手动字符串操作)来获得原始的 -06:00 TZ (MST)。我真的希望有一种 RoR 方式来获取这些信息......似乎应该有一种方式!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 timezone