1

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

我以为

require 'time'

会解决这个问题并使其在 ruby​​ 中可用,但它没有,我得到了

NoMethodError: undefined method `zone' for Time:Class
4

2 回答 2

2

我不知道,你是什么意思。但我认为它应该如下工作:

(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

于 2014-04-09T17:50:17.987 回答
1

您尝试将 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

于 2014-04-09T19:16:05.500 回答