【发布时间】:2017-02-06 09:13:55
【问题描述】:
有没有办法在 Ruby 中为 Time/DateTime 对象添加 1 毫秒?
对于 Web 服务请求,我需要一个以毫秒为单位的时间范围:
irb(main):034:0> time_start = Date.today.to_time.utc.iso8601(3)
=> "2016-09-27T22:00:00.000Z"
irb(main):035:0> time_end = ((Date.today + 1).to_time).utc.iso8601(3)
=> "2016-09-28T22:00:00.000Z"
-- or --
irb(main):036:0> time_end = ((Date.today + 1).to_time - 1).utc.iso8601(3)
=> "2016-09-28T21:59:59.000Z"
所以我接近我的首选解决方案,但 time_end 应该是 2016-09-28T21:59:59.999Z。
我没有找到 Ruby 可以处理毫秒计算的解决方案。我只用strftime做的,如果有计算的可能就好了。
-- This works, but hard coded --
time_end = ((Date.today + 1).to_time - 1).utc.strftime("%Y-%m-%dT%H:%M:%S.999Z")
=> "2016-09-28T21:59:59.999Z"
仅供参考:我使用的是纯 Ruby,没有 Rails。
【问题讨论】:
-
“我没有找到 Ruby 可以处理毫秒计算的解决方案。” -- 这是当前时间戳,以毫秒为单位:
Time.now.to_f -
我不想要当前毫秒,我想用它计算时间对象。我需要一个 1 天的范围开始和结束。并且在描述的iso格式中
-
也许我的问题还不够清楚。有没有办法给时间/日期时间对象增加 1 毫秒?
-
根据您的最新评论,我们现在知道这不是指定示例的副本。我已根据该评论编辑了问题。
标签: ruby time milliseconds