我有时间戳
timestamp = Time.now.utc.to_f
我需要在同一天的UTC午夜找到时间戳:
t = Time.at timestamp
Time.at(((t - t.hour * 3600).to_f / 3600).to_i * 3600).to_f
有没有办法获得相同的时间戳而无需将原始timestamp
转换为Time
对象?以类似于将时间戳舍入到最近一小时的方式:
(timestamp / 3600).to_i * 3600
答案 0 :(得分:5)
由于UTC时间戳从1970年1月1日午夜 UTC开始,只需执行以下操作:
timestamp - timestamp % (3600*24)
这将为您提供上午午夜UTC的时间戳。
要调整您的时区,只需在计算模数之前添加或删除相应的小时数,然后添加或删除它们以获取相应的UTC时间戳。