繁体   English   中英

NoMethodError:Time:Class的未定义方法`zone'

[英]NoMethodError: undefined method `zone' for Time:Class

我如何在ruby中使用Time.zone如果我不使用rails我想做Time.now但是这可以在rails中使用但不是ruby

我认为

require 'time'

会解决这个问题,并在红宝石中提供它,但它没有,我得到

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

您已尝试将区域视为类方法( 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM