Timestamp Ruby时间戳可靠地转换为UTC

Timestamp Ruby时间戳可靠地转换为UTC,timestamp,ruby-2.1,Timestamp,Ruby 2.1,我正在写一个Ruby脚本。它需要接受来自用户的时间戳,然后使用它执行一些数据库查询。 据我所知,数据库以UTC格式存储时间戳 我想让用户以以下格式指定时间:2015-01-01 05:00 AM CST 从谷歌告诉我的情况来看,CST比UTC晚6个小时,因此转换为UTC后,我预计时间为UTC时间2014-12-31晚上11:00 但这不是我所看到的 时间.strTime'2015-01-01 05:00 AM CST',“%Y-%m-%d%I:%m%p%Z”。utc 印刷品 2015-01-01

我正在写一个Ruby脚本。它需要接受来自用户的时间戳,然后使用它执行一些数据库查询。 据我所知,数据库以UTC格式存储时间戳

我想让用户以以下格式指定时间:2015-01-01 05:00 AM CST

从谷歌告诉我的情况来看,CST比UTC晚6个小时,因此转换为UTC后,我预计时间为UTC时间2014-12-31晚上11:00

但这不是我所看到的

时间.strTime'2015-01-01 05:00 AM CST',“%Y-%m-%d%I:%m%p%Z”。utc

印刷品

2015-01-01 11:00:00 UTC

它不应该打印2014-12-31 UTC下午11:00吗

时间。STRTIME'2015-01-01 05:00 PM CST',“%Y-%m-%d%I:%m%Z”。utc

印刷品

2015-01-01 11:00:00 UTC


从上午到下午的变化似乎没有任何区别,这怎么可能呢?

我倒过来了!UTC领先于CST,因此当CST转换为UTC时,CST时间将增加6小时

鲁比做得对

因此,上午5点CST=上午11点UTC。 下午5点中央标准时间=晚上11点协调世界时

如果我测试晚上11点CST,则会出现日差:

时间.strtime'2015-01-01美国标准时间下午11:00,'%Y-%m-%d%I:%m%p%Z'。utc

印刷品

2015-01-02 05:00:00 UTC

也就是说,它正确地增加了一天