2014-10-02 2 views
0

Я просто хочу вернуть менее точную, усеченную версию Time.now.Как сделать Time.now менее точным?

Когда я запускаю Time.now Я получаю очень точный объект 2014-10-02 14:49:47 -0400tim. Я хочу только ГГГГ-ММ-ДД ЧЧ: ММ: ММ.

Как я могу (временно) применить точность возвращаемого объекта Time.now?

ответ

1

strftime() позволяет указать строку формата для вашего объекта времени. Список флагов формата можно найти в документации

Пример из Docs:

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. 
+0

Спасибо, это отлично работает! – FluffyKittens

+0

@AdamJ Счастливые помочь. Если вы почувствуете, что на этот вопрос был дан ответ, отметьте его как таковой. – Grice

+0

Извините, что отвлекся! – FluffyKittens

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