在 Rails 3.0.10 中,我正在使用Time.zone
来更改用户查看美国各地发布的课程时间的方式。但是更改时区似乎并不像我期望的那样运行
Time.zone = TZInfo::Timezone.get('America/Los_Angeles')
Time.zone # => (GMT-08:00) America/Los_Angeles
Time.current # => 2011-10-30 14:00:00 -0700
Time.zone = TZInfo::Timezone.get('America/Chicago')
Time.zone # => (GMT-06:00) America/Chicago
Time.current # => 2011-10-30 14:00:00 -0700
我希望时间会发生变化,偏移量也会适应 Time.zone 的变化,但它似乎并没有那样做。
我遇到了一个问题,加利福尼亚州洛杉矶的用户正在创建在加利福尼亚时间晚上 9 点结束的课程,而不同时区的用户看到该课程处于非活动状态并在不同时间而不是同时消失。谁能阐明 Time.zone 实际在做什么设置,以及我如何让在晚上 9 点(太平洋标准时间(结束的课程在晚上 11 点(CST(正确消失?
替换
Time.current
跟
Time.zone.now
这将为您提供您设置的时区中的当前时间。
t = Time.now
Time.zone = TZInfo::Timezone.get('America/Los_Angeles')
t.in_time_zone
或
Time.now.in_time_zone('America/Los_Angeles')