我喜欢红宝石的魔力,但每隔一段时间你就会遇到一些看起来很简单的东西。 这是我的问题:
我使用MySQL的时间列类型将值存储在我的数据库中。 这个商店只是hh:mm:ss值。
稍后进行比较时,Ruby将获取此值并将2001-01-01 hh:mm:ss UTC追加到它。 (下面的Record1取自我的数据库,是一个ActiveRecord对象,从一个恰好使用MYSQL的Time函数存储时间属性的集合中获得)
所以我觉得有用的比较的唯一选择是使用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 >
答案 0 :(得分:1)
所以似乎我唯一的选择就是使用有用的比较 STRFTIME?是吗?
那,或者你可以做类似
的事情timestring = "#{@time_obj1.hour}:#{@time_obj1.min}:#{@time_obj1.sec}"
但是strftime
只是少了很多字符,而且是实现你所追求目标的更标准方法。