我正在写一个Ruby脚本。它需要接受用户的时间戳,然后使用它进行一些数据库查询。 据我所知,数据库正在以UTC格式存储时间戳。
我想让用户按以下格式指定时间:2015-01-01 05:00 AM CST
谷歌告诉我CST比UTC晚了6个小时,所以在转换到UTC后我预计时间是2014-12-31 11:00 PM UTC。
但这不是我所看到的。
Time.strptime('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 11:00 PM UTC?
Time.strptime('2015-01-01 05:00 PM CST', '%Y-%m-%d %I:%M %Z').utc
打印
2015-01-01 11:00:00 UTC
从上午到下午的变化似乎没有任何区别,怎么可能呢?
答案 0 :(得分:0)
我倒退了! UTC是CST的AHEAD,因此当CST转换为UTC时,6小时将被添加到CST时间!!
Ruby正确地做到了。
因此,上午5点CST =上午11点UTC。 下午5点CST =晚上11点UTC。
如果我测试11 PM CST,则会出现白天的差异:
Time.strptime('2015-01-01 11:00 PM CST', '%Y-%m-%d %I:%M %P %Z').utc
打印
2015-01-02 05:00:00 UTC
这就是它正确地增加了一天。