我只想返回一个不太精确的截断版本的Time.now。
当我运行Time.now
时,我得到一个非常精确的对象2014-10-02 14:49:47 -0400tim
。我只想要
YYYY-MM-DD HH:MM:MM。
如何(临时)转换Time.now返回对象的精度?
答案 0 :(得分:1)
strftime()允许您为时间对象提供格式字符串。格式标志列表可以在文档
中找到文档示例:
t = Time.new(2007,11,19,8,37,48,"-06:00") #=> 2007-11-19 08:37:48 -0600
t.strftime("Printed on %m/%d/%Y") #=> "Printed on 11/19/2007"
t.strftime("at %I:%M%p") #=> "at 08:37AM"
你的例子:
t.strftime("%Y-%m-%d %T") #=> YYYY-MM-DD HH:MM:MM.
答案 1 :(得分:0)
您可以创建一个新的Time
对象,该对象是四舍五入到最近的分钟的原始时间:
require 'time'
t = Time.now
#=> 2014-10-02 12:40:22 -0700
new_time = t + (t.sec >= 30 ? 60-t.sec : -t.sec)
#=> 2014-10-02 12:40:00 -0700
t += 30
#=> 2014-10-02 12:40:52 -0700
new_time = t + (t.sec >= 30 ? 60-t.sec : -t.sec)
#=> 2014-10-02 12:41:00 -0700