如何在ActiveSupport中设置默认时区?事情是这样的:
irb -r 'rubygems' ruby-1.8.7-p174 > require 'active_support' ruby-1.8.7-p174 > require 'active_support/time_with_zone' ruby-1.8.7-p174 > Time.zone ruby-1.8.7-p174 > nil
字符串如何将其默认设置为当前位置?
kcwpcxri1#
在rails中,它通过rails初始化器在environment.rb中设置。
Rails::Initializer.run do |config| config.time_zone = 'Pacific Time (US & Canada)' # ...
字符串我刚刚做了一个测试,当config.time_zone被注解掉时,Time.zone也会在rails项目中返回nil;所以我猜没有'default',它只是在初始化器中设置了我猜你已经知道这将“工作”?
irb -r 'rubygems' ruby-1.8.7-p174 > require 'active_support' ruby-1.8.7-p174 > require 'active_support/time_with_zone' ruby-1.8.7-p174 > Time.zone ruby-1.8.7-p174 > nil ruby-1.8.7-p174 > Time.zone = 'Pacific Time (US & Canada)' ruby-1.8.7-p174 > Time.zone => #<ActiveSupport::TimeZone:0x1215a10 @utc_offset=-28800, @current_period=nil, @name="Pacific Time (US & Canada)", @tzinfo=#<TZInfo::DataTimezone: America/Los_Angeles>>
型注意:上面的代码使用的是rails 2.2.2,更新的版本可能会有所不同?
core_ext
Time
ActiveSupport
require 'active_support/core_ext/time/zones'
型
rks48beu2#
您可以使用两个来源的值设置时区,一个是自己的ActiveSupport短列表(约137个值,请参阅ActiveSupport::TimeZone.all获取它们),另一个是IANA names(约590个值)。在最后一种情况下,您可以使用tzinfo gem(ActiveSupport的依赖项)来获取列表或示例TZInfo::TimezoneProxy:例如
ActiveSupport::TimeZone.all.map &:name Time.zone = ActiveSupport::TimeZone.all.first Time.zone = ActiveSupport::TimeZone.all.first.name Time.zone = ActiveSupport::TimeZone.new "Pacific Time (US & Canada)" Time.zone = ActiveSupport::TimeZone.find_tzinfo "Asia/Tokyo"
字符串列出所有国家,所有时区:
TZInfo::Country.all.sort_by { |c| c.name }.each do |c| puts c.name # E.g. Norway c.zones.each do |z| puts "\t#{z.friendly_identifier(true)} (#{z.identifier})" # E.g. Oslo (Europe/Oslo) end end
1u4esq0p3#
使用类似于第一个月并在环境变量中设置它。根据项目设置,在初始化器或environment.rb中设置它。
3条答案
按热度按时间kcwpcxri1#
在rails中,它通过rails初始化器在environment.rb中设置。
字符串
我刚刚做了一个测试,当config.time_zone被注解掉时,Time.zone也会在rails项目中返回nil;所以我猜没有'default',它只是在初始化器中设置了
我猜你已经知道这将“工作”?
型
注意:上面的代码使用的是rails 2.2.2,更新的版本可能会有所不同?
core_ext
命名空间,所以上面的require不会扩展Time
。对于以后的ActiveSupport
版本,请使用以下命令:型
rks48beu2#
您可以使用两个来源的值设置时区,一个是自己的ActiveSupport短列表(约137个值,请参阅ActiveSupport::TimeZone.all获取它们),另一个是IANA names(约590个值)。在最后一种情况下,您可以使用tzinfo gem(ActiveSupport的依赖项)来获取列表或示例TZInfo::TimezoneProxy:
例如
字符串
列出所有国家,所有时区:
型
1u4esq0p3#
使用类似于
第一个月
并在环境变量中设置它。根据项目设置,在初始化器或environment.rb中设置它。