山区标准时间比 UTC 晚 7 小时,因此当您在 MST 中从 7 月 22 日当天捕获所有数据点时,您希望 UTC 时间从 7 月 22 日上午 7 点 UTC 到 7 月 23 日上午 7 点世界标准时间。
我认为您的代码不正确,因为您in_time_zone("MST")
在beginning_of_day
.
当您在使用 UTC 的服务器上运行此代码时,评估时间会有所不同:
>> Time.new.yesterday.beginning_of_day.in_time_zone('MST').utc
=> 2013-07-22 00:00:00 UTC
>> Time.new.in_time_zone("MST").yesterday.beginning_of_day.utc
=> 2013-07-22 07:00:00 UTC
以下是如何正确确定开始和结束时间的方法:
>> t = Time.new
=> 2013-07-23 19:45:10 +0000
>> start_time = t.in_time_zone("MST").yesterday.beginning_of_day
=> Mon, 22 Jul 2013 00:00:00 MST -07:00
>> end_time = t.in_time_zone("MST").yesterday.end_of_day
=> Mon, 22 Jul 2013 23:59:59 MST -07:00
当我们将开始时间和结束时间转换为 UTC 时,我们得到了想要的结果。
>> start_time = t.in_time_zone("MST").yesterday.beginning_of_day.utc
=> 2013-07-22 07:00:00 UTC
>> end_time = t.in_time_zone("MST").yesterday.end_of_day.utc
=> 2013-07-23 06:59:59 UTC