ruby - 时间戳最近午夜的时间戳

标签 ruby

我有一个时间戳

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

最佳答案

由于 UTC 时间戳从 1970 年 1 月 1 日的 午夜 UTC 开始,只需执行以下操作:

timestamp - timestamp % (3600*24)

这将为您提供世界标准时间最后一个午夜的时间戳。

要针对您的时区进行调整,只需在计算模数之前添加或删除相应的小时数,然后添加或删除它们以获得相应的 UTC 时间戳。

关于ruby - 时间戳最近午夜的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929575/

相关文章:

ruby-on-rails - rails 中是否有 options_for_select 的分隔符?

Ruby 字符串到运算符

ruby - 配置 Jenkins 时遇到问题

ruby - 选择相邻的兄弟元素而不插入非空白文本节点

ruby-on-rails - 我可以在 Ubuntu 上使用 apt-get 安装 gems 吗?

ruby-on-rails - 基于更改的属性值查询 Rails 模型

ruby - Mongoid 给出未初始化的常量 Mongo

ruby-on-rails - Mongoid 标签 - 从模型中收集独特的数组项

ruby-on-rails - 在使用 Rails 保存之前将字符串转换为日期

ruby-on-rails - 在 .map() 中使用变量