如果我不使用rails,如何在ruby中使用Time.zone我想做Time.now,但它在rails中可用,但在ruby 中不可用
我以为
require 'time'
会修复这个问题,并在ruby中提供它,但它没有,我得到了
NoMethodError: undefined method `zone' for Time:Class
(arup~>~)$ pry --simple-prompt
>> Time.now
=> 2014-04-09 23:19:04 +0530
>> Time.now.strftime('%Z')
=> "IST"
>> Time.now.strftime('%z')
=> "+0530"
>> Time.now.zone
=> "IST"
文档:#strftime
和#zone
。
您尝试将zone当作一个类方法(Time.zone
)[1]来使用。如果你想使用类方法:
1.9.3-p448 :007 > Time.now.zone
=> "EDT"
但是Time.now
只是实例化您自己的Time
[2]实例的一种很好的方式。所以你实际上只是在做这件事(调用一个实例方法):
1.9.3-p448 :009 > time = Time.new
=> 2014-04-09 15:14:01 -0400
1.9.3-p448 :010 > time.zone
=> "EDT"
[1]http://www.railstips.org/blog/archives/2009/05/11/class-and-instance-methods-in-ruby/
[2]http://ruby-doc.org/core-1.9.3/Time.html#method-c-now