Что случилось с Ruby Time, включая даты? - PullRequest
0 голосов
/ 28 января 2012

Я люблю магию рубина, но время от времени вы сталкиваетесь с чем-то, что кажется легким делом.Вот моя проблема:

Я храню значение как Время в моей БД, используя тип столбца времени MySQL.В этом хранилище хранятся только значения чч: мм: сс.

Позже при выполнении сравнения Ruby получит это значение и добавит к нему 2001-01-01 чч: мм: сс UTC.(Приведенная ниже запись 1 была взята из моей БД и является объектом ActiveRecord, полученным из коллекции, в которой, как оказалось, хранится атрибут времени с использованием функции времени MYSQL)

Так что, похоже, мой единственный вариант для полезных сравнений - использовать strftime?Это верно?

    (ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0])

    ruby-1.9.2-p290 :009 > record1.time
     => 2000-01-01 08:30:00 UTC 

    ruby-1.9.2-p290 :001 > time1 = "08:30:00"
     => "08:30:00" 
    ruby-1.9.2-p290 :002 > @time_obj1 = Time.parse time1
     => 2012-01-27 08:30:00 -0700 
    ruby-1.9.2-p290 :003 > @time_obj1.to_s
     => "2012-01-27 08:30:00 -0700" 
    ruby-1.9.2-p290 :004 >

1 Ответ

1 голос
/ 28 января 2012

Так что, похоже, мой единственный вариант для полезных сравнений - это использовать STRFTIME? Это верно?

Это, или вы могли бы сделать что-то вроде

timestring = "#{@time_obj1.hour}:#{@time_obj1.min}:#{@time_obj1.sec}"

Но strftime - это немного меньше символов и более стандартный способ достичь того, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...